Compare commits

...

8 Commits

Author SHA1 Message Date
96211d9855 reference link 2024-12-16 19:54:25 -06:00
5528e21458 reset 2024-12-16 19:51:30 -06:00
5d82c29fc4 reset (#2)
Reviewed-on: #2
Co-authored-by: Alexis Lazcano <alexis@saratoga-homes.com>
Co-committed-by: Alexis Lazcano <alexis@saratoga-homes.com>
2024-12-16 19:46:28 -06:00
df3413c803 a 2024-12-16 19:17:51 -06:00
4b59567c49 Merge branch 'main' of https://git.scmg.is/SCMG/Lenovo-Asset-Tag-Writer into dev 2024-12-16 19:14:38 -06:00
ebf10e51e0 minor changes (#1)
Reviewed-on: #1
Co-authored-by: Alexis Lazcano <alexis@saratoga-homes.com>
Co-committed-by: Alexis Lazcano <alexis@saratoga-homes.com>
2024-12-16 19:12:30 -06:00
dfd3a41504 minor changes 2024-12-16 19:08:04 -06:00
bd16f69880 Function rename 2024-12-16 18:52:39 -06:00

View File

@@ -9,7 +9,9 @@
.DESCRIPTION
Lenovo computers contain a BIOS property to store a device's asset tag accessible via WMI/CIM.
Get-CIMInstance -ClassName Win32_SystemEnclosure -NameSpace root\CIMV2 | Format-Table -Property SMBIOSAssetTag
Unfortunately, this field is not writeable without the use of a tool from Lenovo. This script helps automate the process of obtaining the asset tag from Snipe-IT and writing it to the BIOS for later retrieval through WMI.
Unfortunately, this field is not writeable without the use of a tool from Lenovo.
This script helps automate the process of obtaining the asset tag from Snipe-IT and writing it to the BIOS for later retrieval through WMI.
For more info: https://support.lenovo.com/us/en/downloads/ds039503-windows-utility-to-read-and-write-asset-id-information-for-window-10-64-bit-81-64-bit-8-64-bit-7-32-bit-64-bit-thinkpad
#>
#region Check if running in elevated context
@@ -42,11 +44,25 @@ $PSComputerInfo.Add("model_number", $($ComputerSystemProduct.Name))
$PSComputerInfo.Add("model_name", $($ComputerSystemProduct.Version))
#endregion Get asset information from WMI/CIM and add it to new hashtable
function Load-EnvFile
{
<#
.SYNOPSIS
Reads .env file and assigns the respective variables.
.DESCRIPTION
This function reads the lines from the .env file in the present working directory and creates/assigns the necessary environment variables.
.EXAMPLE
PS C:\> Load-EnvFile
.NOTES
Additional information about the function.
#>
[CmdletBinding()]
Param ()
param ()
if (!(Test-Path -Path .env)) { Write-Error ".env file does not exist in $((Get-Location).Path)\ `nPlease double check it exists and is named properly."; Exit 404 }
$EnvFile = Get-Content .env | where { !([string]::IsNullOrWhiteSpace($_)) -and ($_ -notlike "#*") }
foreach ($Line in $EnvFile)
@@ -59,15 +75,33 @@ function Load-EnvFile
Load-EnvFile
function Get-SnipeAssetNumber
function Get-SnipeAssetTag
{
<#
.SYNOPSIS
Retrieve asset tag from Snipe-IT.
.DESCRIPTION
This functions makes a request to the snipe-it API and retreives the appropriate asset's asset tag. The asset must already exist in Snipe-IT.
.PARAMETER Serial
A description of the Serial parameter.
.EXAMPLE
PS C:\> Get-SnipeAssetTag -Serial 'Value1'
.NOTES
Additional information about the function.
#>
param
(
[Parameter(Mandatory = $true)]
[String]$Serial
)
$baseURI = $env:SNIPEIT_URL
$hardwareURI = $baseURI + "hardware"
#$baseURI = $env:SNIPEIT_URL
$hardwareURI = $env:SNIPEIT_URL + "hardware"
$headers = @{ }
$headers.Add("accept", "application/json")
$headers.Add("Authorization", "Bearer $env:SNIPEIT_TOKEN")
@@ -83,7 +117,7 @@ function Get-SnipeAssetNumber
If ($PSComputerInfo.manufacturer -like "Lenovo")
{
$SnipeAssetTag = Get-SnipeAssetNumber -Serial $PSComputerInfo.serial
$SnipeAssetTag = Get-SnipeAssetTag -Serial $PSComputerInfo.serial
switch -wildcard ($PSComputerInfo.model_name)
{
@@ -120,8 +154,8 @@ else
# SIG # Begin signature block
# MIIvYQYJKoZIhvcNAQcCoIIvUjCCL04CAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCknNZ3BWTVBjx3
# QI2DdsPw9Qtwj9YGGOLljsSJ2MVKqKCCKGYwggQyMIIDGqADAgECAgEBMA0GCSqG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCJBhsRXcdT32Ra
# zbQIki2HBD+5BCCe4l1pUYtHyICbQ6CCKGYwggQyMIIDGqADAgECAgEBMA0GCSqG
# SIb3DQEBBQUAMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNo
# ZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1p
# dGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2VydmljZXMwHhcNMDQwMTAx
@@ -340,35 +374,35 @@ else
# MYIGUTCCBk0CAQEwaDBUMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBM
# aW1pdGVkMSswKQYDVQQDEyJTZWN0aWdvIFB1YmxpYyBDb2RlIFNpZ25pbmcgQ0Eg
# UjM2AhAtmKdfiMvdO1IQbTd6fBa6MA0GCWCGSAFlAwQCAQUAoEwwGQYJKoZIhvcN
# AQkDMQwGCisGAQQBgjcCAQQwLwYJKoZIhvcNAQkEMSIEIEtcCPjZMfhtxOgmQshL
# couMo5iphBqNHVwI5LWPe1XHMA0GCSqGSIb3DQEBAQUABIICAAuNU2SEf35xaTGn
# sXyh3xuXEFWRlGQWT310UFIRcy4PcDvEVj82DGkwo8CQRYOI3vRmfVq4esz5MP6K
# oINNDBBci7VtrR7ls8esVE2+w4uj0AEBjT0I5hT4NVFvQiihQFyIYD+B/Ei0b22r
# CEcxsr/0EDiugnfyZGPiN8AN/TEtobRh/sWmJTG+Ie3+8G17hs5JNhByVYLzo0hN
# g3U48WZhje7nJJa61Z9TBaTSC3P02KZXemqADf/GFedco/SDeVac+ADiipuqJaFa
# PSXrJiAxSmBmUwzdhUxrxF3Nq/f6rp1gpsSMUxSd/m0pCVIyWzlGThqt0G5HZp8g
# hJ9Y+veLHZ8VWckGnr+bDdgW6Il0kW3JRqF90D8Htid3UF8bem+QpE/oyUzSyRkO
# mLJ+hxzrFJMtZ6JGQs7PWP4t08ABGdlk18Sc7/JS5ywFMdVwOxj4bqAe9aEsbpy/
# IASU3ROvNZiCDp2jFCYKRjJXm9tnxrOAyi2xSb7r7jHv83gNro0vWfmUOMCLhOrB
# 6X8BzokKwxIv8ff7k2JwF4iBw+EaUSjlziur1Lo4WqF3Ie1Bo2neA7fqh2xWjhUY
# fAfmrVw304LOr+xgV1CXFjAYLuWRC5NeZeA6fxiUGlYUTR/4AQ9urPIupkodzm1j
# oXR45kXr+SEXasrarAn1G8ViNznMoYIDbDCCA2gGCSqGSIb3DQEJBjGCA1kwggNV
# AQkDMQwGCisGAQQBgjcCAQQwLwYJKoZIhvcNAQkEMSIEIEDwAiFZlky5cNkA+FBo
# 4djAhgoUNQM6WJn+SB2FA9jSMA0GCSqGSIb3DQEBAQUABIICAAvcFaZi+OgYtVJx
# uqSbgcZH64Rkl+jO/XYDlsWM+YC8O7imE/GI9PIUIPJIydB68p0Wy281yLLM79Gu
# UA4mjGi4NEUcozQOpIeGQEfq2oWyuOmQzbOpqFVqnYBZ49WwKJaMUPppSm8V7e6O
# ovKgdvLO2po9jpUrJn4CsYTLucR9wtIANnXW/4K+rFrf7Pyv4HkWT/SIDkRW/vgs
# G+PiyR9CvjyhfCysL8wmwSBU+o2u+o0nBrnw+DF3yRgqQ8dtsocMa0W+8YToHfn3
# Uk3bgIbgHcl9GkFrYCb1WkiOtzN1/PgRi9VgL8jLKuB+2R4vby9cbz1plcnD3vma
# TCVdbSKHJyUkuMyoAz8w9JEWOeApKM3OocXBXkik2B7K5rUGv5RHKJ9Qxm8RascW
# 7rvVl2GsXVk5EE1rJ8qdShMREXbFoi1Mfu6rEJcb7HD0Zx9BIMqnq9G5kJIZwdrp
# MSZ+4FUjm9rxz4O8NRTZyFxYzlFXcrI54LqDKS8yC6jBsB2Y3Ji7Z3VfBqPJgry7
# 6SAY6Gal3ODJag8LDUv20x+p+6epYHdAKJqOmjuw0Z5BuP2LES0HjDQirrh85jqi
# 0gSa7NuxNaj+i3j5BIcfMas/NNyAdy0Snwn72/2ejIVgh0ILsCAo836eHLEYWh0m
# tS8EB6L7Gvtt9ksip5vhM5qSrHmEoYIDbDCCA2gGCSqGSIb3DQEJBjGCA1kwggNV
# AgEBMG8wWzELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2Ex
# MTAvBgNVBAMTKEdsb2JhbFNpZ24gVGltZXN0YW1waW5nIENBIC0gU0hBMzg0IC0g
# RzQCEAEHZJsIsKf+fdZUqPL0KfYwCwYJYIZIAWUDBAIBoIIBPTAYBgkqhkiG9w0B
# CQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yNDEyMTcwMDM5NTJaMCsG
# CQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yNDEyMTcwMTUzNDlaMCsG
# CSqGSIb3DQEJNDEeMBwwCwYJYIZIAWUDBAIBoQ0GCSqGSIb3DQEBCwUAMC8GCSqG
# SIb3DQEJBDEiBCDsQWi4AJ+q/D3ngPGfrAf5yiolSzU4btYkWbYvuysupTCBpAYL
# SIb3DQEJBDEiBCB1Aks/69bE1azPpsxEV9EfL8HcE+A7hDTijYfiT40JpjCBpAYL
# KoZIhvcNAQkQAgwxgZQwgZEwgY4wgYsEFETTk5zNG4h/hnrM2oHsrw9l/NJZMHMw
# X6RdMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEw
# LwYDVQQDEyhHbG9iYWxTaWduIFRpbWVzdGFtcGluZyBDQSAtIFNIQTM4NCAtIEc0
# AhABB2SbCLCn/n3WVKjy9Cn2MA0GCSqGSIb3DQEBCwUABIIBgEHnjlrDy0Ax4u1e
# iWOzYH2gf/PyLbPJWTJJtNr1CnQmcu6prIJcUA73DnSHrgndyRvVax2BsNNHFYwK
# 6PPfUtSa9Tx5Znah+juAzkX7wpUBqGrXWyLEdDFteEZzORCs5gN6PuhL7P8Hccp4
# G/MWpbOb354jZhb7s1UgPKkZcvLzl1N1WzR5NAbW3MSGKX6Aw91OHqGPi+03xAGP
# UVmqCSovtnXNQoPgmOJSnqyU579mJPV03Tbngw1CrIupZBTkeXACfDyHoHwR4vTE
# tUKJEhjwh0tINFTzC0tbcQKfkHpTzcjycAP+3cjXRUQzgA0EtYXdP2XovKmaQxsj
# Fm3HOCuqprPQQ0XHrsmA8tCNJe+BHAkrDuxNdNfHS5KglnsQAt9qvnUdbf11MBPA
# LWSsPb9P084++TtZi0znnZ9v8kpyOsav0GBXAXF8x/Q4T0oBOr50qsyjOpqNGBtm
# Y4Xi489w64hG6Uk8T7CM725wUK0kxL2GAHQvkiCMagjwvzXYVA==
# AhABB2SbCLCn/n3WVKjy9Cn2MA0GCSqGSIb3DQEBCwUABIIBgInml3C1WNWTqud/
# dp8zBX6kfDszeYMejntA9kmdSexAdFdD1ev1bLwErzwAyrvOAK//fSXlnQYO/bxH
# YVWrumxfXn6wDH+4GYMh41IYYhq/vdEnYPpY58zuOp9NlH/wGkwpRRXqm0mAks//
# 6IG/o+kU4A5WdJ9izlCxnDTgYkyL8eX2I4hLOy+kLWD50YxkB2/UEhWak7pXoTQW
# tMsb40lGQyBv5gCE8ReF2wzOLIG1DPXY0KAMeh8UgMcEzmYcx2UO3Y8qOObPLd04
# QXC34p2sImfyeOb2Bi51tjnMNvTmkJIMO+K/W7U9eJLWAvOdrpMGDQSXsCfSAST0
# k+DTMlEKNHPo5HHMqJpu31GtMfxr4wXWy+JjArSGazqVcx1GaaYb0zAxZZra3iC2
# 3gfxX9BZ+Mc72F+gWn5mFPWyDOVEIorw6CwaRfZrJbt8sAzM6xCUl6AzKS2Cv4ah
# ptCk+Z0/wU4F1qizniLiIUVtZ5bx+rseobhIJ+Le+RrSKt2Liw==
# SIG # End signature block