diff --git a/Lenovo-Asset-Tag-Writer.ps1 b/Lenovo-Asset-Tag-Writer.ps1 index 8402faf..5185789 100644 --- a/Lenovo-Asset-Tag-Writer.ps1 +++ b/Lenovo-Asset-Tag-Writer.ps1 @@ -1,26 +1,31 @@ -<# +<# .NOTES - =========================================================================== - Created on: 12/13/2024 2:46 PM - Created by: Alexis Lazcano - =========================================================================== + =========================================================================== + Created on: 12/13/2024 2:46 PM + Created by: Alexis Lazcano + =========================================================================== + .SYNOPSIS + A brief description of the Lenovo-Asset-Tag-Writer.ps1 file. .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. + 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. #> #Check if running as Administrator... if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { # If not elevated, re-launch the script with elevated privileges - $CommandLine = "-File `"" + $MyInvocation.MyCommand.Path + "`" " + $MyInvocation.UnboundArguments - Start-Process -FilePath PowerShell.exe -Verb Runas -ArgumentList $CommandLine + $params = @{ + FilePath = "powershell.exe" + Verb = "RunAs" + ArgumentList = "-NoExit", "-Command `"cd '$pwd'; & '$PSCommandPath';`"" + WorkingDirectory = "$(Split-Path $MyInvocation.MyCommand.Path -Parent)" + } + Start-Process @params -Wait exit } -$VerbosePreference = 'SilentlyContinue' - $ScriptRoot = "$env:PROGRAMFILES\SCMG\Scripts" $ScriptLogs = "$ScriptRoot\Logs" $ScriptTemp = "$ScriptRoot\Temp" @@ -71,7 +76,6 @@ function Get-SnipeAssetNumber } } - function Get-BiosTool { [CmdletBinding(ConfirmImpact = 'Medium')] @@ -120,13 +124,14 @@ If ($ComputerSystemProduct.Vendor -like "Lenovo") $SnipeAssetTag = Get-SnipeAssetNumber -Serial $PSComputerInfo.serial - Set-Location $ScriptTemp + $params = @{ + FilePath = "$ScriptTemp\AMIDEWINx64\AMIDEWINx64.exe" + ArgumentList = "/CA `"$SnipeAssetTag`"" + } - .\AMIDEWINx64\AMIDEWINx64.exe /CA "$SnipeAssetTag" + Start-Process @params -Wait -NoNewWindow Remove-Item $ScriptTemp\* -Recurse - - Set-Location -Path $(Split-Path $MyInvocation.MyCommand.Path -Parent) } else { @@ -136,8 +141,8 @@ else # SIG # Begin signature block # MIIvYQYJKoZIhvcNAQcCoIIvUjCCL04CAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBjs+JMqPrrbeXe -# t6xlvmH3J2Sz9PE5IwjBOfPiZ1qFfqCCKGYwggQyMIIDGqADAgECAgEBMA0GCSqG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBJvdq7f24iN171 +# +rfGmoyWkbHBZh/RhhkGQIP0j4bv+KCCKGYwggQyMIIDGqADAgECAgEBMA0GCSqG # SIb3DQEBBQUAMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNo # ZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1p # dGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2VydmljZXMwHhcNMDQwMTAx @@ -356,35 +361,35 @@ else # MYIGUTCCBk0CAQEwaDBUMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBM # aW1pdGVkMSswKQYDVQQDEyJTZWN0aWdvIFB1YmxpYyBDb2RlIFNpZ25pbmcgQ0Eg # UjM2AhAtmKdfiMvdO1IQbTd6fBa6MA0GCWCGSAFlAwQCAQUAoEwwGQYJKoZIhvcN -# AQkDMQwGCisGAQQBgjcCAQQwLwYJKoZIhvcNAQkEMSIEIFOdqQKPKOWFNMHwKbkP -# CK2ODm7gDc2gt+OYMrA4HNziMA0GCSqGSIb3DQEBAQUABIICAJX9FMRkuRNmHtPv -# yE0TLddNY70BlBqQDEU9Dtv5u4PlUbVZ2jZY2ELQPTAq1jjXyNqr1fXI9AVoUBuz -# TfTcalj+3DsYZVqaiiBlVdQ2DDrZJLv7Z3IAGAWl9NBlgjIlSP0PdGYZ7b0128iu -# RoCSvTl6GB3ptGSWQ6MYMc1pdYarv+Wi8OM73I1MU4qWOsH65Y2AgLGWKgEpueZt -# Y3rQ1bInMODFkk4FwFfZv/QCCEVJK7jEwzM7HnVfvWZiR3cV09MtTE81ZHs5ZKnR -# vWnxd2yFEH+ui+E7Omfhy/F3zp+D5g2agpSxGwmiKTi1ULW3fRImpy9vUuXwrLQJ -# idOMCbPtvqSAc6wKCR8jJDhj6GcNpRHX6l/DZbYoCq7S87KwV7AQfneDzz+utm4G -# ydRi3I8yZ6HRiLFrDVWgCHH9Ajp5/LXztOFNBuIJahwtiVzvRLlkY3nw8K4i0Ia6 -# /v4HArENnGYjeyz6g2of1i5m7vuOnHUbgeKTimeyelwpjDV8h6Lzup6tRd8zoc/A -# VG6ofWM3UPmBM1w7s4POWEcr52BLjdMQAd72mUGw5gsDqEY4q8lkrEFuyRcXYnhB -# xyOUMgVuAHLIbrRGPIKf/oSa0dgUaRCi4iwY58MiSmMuU4aKbqD/BENa/NpaunL+ -# W2KNmh2Oix9of2RitnSwKSiBfV4ioYIDbDCCA2gGCSqGSIb3DQEJBjGCA1kwggNV +# AQkDMQwGCisGAQQBgjcCAQQwLwYJKoZIhvcNAQkEMSIEILiWYcPV5h9SEoxBpC27 +# JeuPmhi0Wj6b7uVIAD4SlDmqMA0GCSqGSIb3DQEBAQUABIICAAWabBJRESgzorwW +# 2B9XCmIRZBWwoTn8XFLZf45lpswWLr+dMQz7bag4YeEuOCiW6xVRLlY83NHPWlDE +# CKjwecdhvo2Tl/KerOTcdZixNiRbtqjnxLZBY2CpQYKRkWyEEBnwlFmPxECaEKpQ +# oBOeuvpcy7IO8VD4hcoelFf4RGGH9eO+kMOMsUblQa0848b6+It3qmUAWu3uHMuS +# 9UAB8MRw8GJpjn6ymJC5uoSKCgO86MTFMm33SW5RYTvopMB58JEwg7ZSBJSamnMb +# yWxqrOpReEY8dBnWEFSsmWT103FOCNjUzf3vbnnILPAFwXqLlR6eRTDwroNO+GBe +# i1u3aPFkU49zkVTgwLEjjbNiXtK4u+P/nWLOYRZBnzXdNSwHo2CeoyBRPsAfi01R +# lY+MG0yWgBuHejaEba/cKoTZErXMwANth/Bt7mlEfASwcbjScc8zSE5l8Ob7QUn7 +# 4uzNT1lPwfLUr22q94fTO7ghPL3+QPQJSBaGZD0Dhz1NGpT2MGLKj+TOwI3vN7fe +# oo0+oRlhS6yFMuQmOJguOW5Bv7RYaPXs4ygDCIo2/ikmEhK+BGTfPxy5uxHEiO04 +# ljWBG4iUiUrbGBDoAVTN6SZuugjP7u14vo8kdS3ySR/lgTkJgg04EO7yqmYPUeds +# jcRkldLIHzDs3B7O8nLZT9wHEE6ToYIDbDCCA2gGCSqGSIb3DQEJBjGCA1kwggNV # AgEBMG8wWzELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2Ex # MTAvBgNVBAMTKEdsb2JhbFNpZ24gVGltZXN0YW1waW5nIENBIC0gU0hBMzg0IC0g # RzQCEAEHZJsIsKf+fdZUqPL0KfYwCwYJYIZIAWUDBAIBoIIBPTAYBgkqhkiG9w0B -# CQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yNDEyMTYxOTM5NTFaMCsG +# CQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yNDEyMTYyMTM0NDRaMCsG # CSqGSIb3DQEJNDEeMBwwCwYJYIZIAWUDBAIBoQ0GCSqGSIb3DQEBCwUAMC8GCSqG -# SIb3DQEJBDEiBCB1drKVrq/shE9wOdX/tsSZZr1iDENpJ7iz5i0Ui8cK/DCBpAYL +# SIb3DQEJBDEiBCCMgwQNoEdvo9nwFeuglFIwxtvpzpeBx9DVkl8i9UyI0zCBpAYL # KoZIhvcNAQkQAgwxgZQwgZEwgY4wgYsEFETTk5zNG4h/hnrM2oHsrw9l/NJZMHMw # X6RdMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEw # LwYDVQQDEyhHbG9iYWxTaWduIFRpbWVzdGFtcGluZyBDQSAtIFNIQTM4NCAtIEc0 -# AhABB2SbCLCn/n3WVKjy9Cn2MA0GCSqGSIb3DQEBCwUABIIBgGc8v3HxAEQng4Lw -# WN8KsDMCQW/CF+Ez3X+FLUMxajoNgKuAcRMjyLHPK3f0Nusb6iW1hDu0AnEz9NR0 -# gPZYGtBDz2NtKsSQqpNzs4NYNETmEEQ61GLB09X3iTgZgyZF1u/fkIK/nCL4k8bp -# nyo3Hxd04vIQgNJ3Q2m5D31V0yrVDvGkeFAUnecDQM1ik07l0zhZ/vpwtJiQ0g5F -# NnAqe0/Qmxjt7iqq7yS8PnaHpruhf0xlu59UU9/KtIT/RB0x+DX6nFXQid0Rhgfb -# HnP6RKV6P0jJwl7ZZwFcuXaGw5saniT+qIJOetA0cEPmqF7AmBYsPO52no3q3wG+ -# kSQXp1VC99NdFKQCC18BiJYhxdklst9Atvps//sWOFVySHM0sXpKBr1XNnVoyp18 -# ZSmNOEec8ee7bfBTOxeBqdYc1s7UeZedW89NOClebXXMn1hb/DKV6uqzHvoVOYOO -# BaXUTpxvq/tKiB/MABPjVDe5v4nCGoCO1SA1biZbfwZpVb24oA== +# AhABB2SbCLCn/n3WVKjy9Cn2MA0GCSqGSIb3DQEBCwUABIIBgExwWCxLeEi/WyGM +# WjVegUELgPn0KW+A9m9x7NJhQcfiNShFXp7+o6KmzyPB+Rex/PdJIpKe2DiFO/C+ +# uSWG55NSHLJJk5X+hCs0GKoYdXXqhFHd9KujQRforSgp9ey8RsDl5O6hO4yl4wzM +# SbHbMsEsfTqMRwNqHvjEy4JMyuQ9QB6BtoJtBtLmL+/Vt4AI1aBuUrvl5r+EDpIV +# jjhkX5ByvNOLQGwvG/GM1PVtNfwCcLMybChJvd+UmkzTz0b7LELsqj/T9w8iqkxr +# OnvHcHlevWEbe5dC0+si2mRaJ0lMxjx+xXYShETYNEKL6oOKfAnzadz2k3Dmix5a +# LRr9H/hT7D+L4Wo5KBx8C47LmfdxKM6rJG7r5sdLejg1Jpi9M+Vr9/rZ7gEcdFw+ +# QJpf5nl+O2fLPFLHpeltEKT77y1dCjt36y/wlllTuAjbgVixxzwJs4gbdit4uiXn +# 0EtLOABXrEd3YZsdRFvd/vzAgU8pYLeqZDA6e4YtMOeE0DTXpQ== # SIG # End signature block