Restored local copy after branch mishap.
This commit is contained in:
parent
e144217834
commit
eaaf430e4d
@ -12,10 +12,9 @@
|
||||
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...
|
||||
#region Check if running in elevated context
|
||||
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))
|
||||
{
|
||||
# If not elevated, re-launch the script with elevated privileges
|
||||
$params = @{
|
||||
FilePath = "powershell.exe"
|
||||
Verb = "RunAs"
|
||||
@ -25,30 +24,36 @@ if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]:
|
||||
Start-Process @params -Wait
|
||||
exit
|
||||
}
|
||||
#endregion Check if running in elevated context
|
||||
|
||||
$ScriptRoot = "$env:PROGRAMFILES\SCMG\Scripts"
|
||||
$ScriptLogs = "$ScriptRoot\Logs"
|
||||
$ScriptTemp = "$ScriptRoot\Temp"
|
||||
|
||||
if (!(Test-Path -Path $ScriptLogs)) { New-Item -Path $ScriptLogs -ItemType Directory -Force | Out-Null }
|
||||
if (!(Test-Path -Path $ScriptTemp)) { New-Item -Path $ScriptTemp -ItemType Directory -Force | Out-Null }
|
||||
|
||||
#region Get asset information from WMI/CIM and add it to new hashtable
|
||||
$ComputerSystemProduct = Get-CIMInstance -ClassName Win32_ComputerSystemProduct -NameSpace root\CIMV2
|
||||
$CurrentSMBIOSAssetTag = Get-CIMInstance -ClassName Win32_SystemEnclosure -NameSpace root\CIMV2 | Format-Table -Property SMBIOSAssetTag
|
||||
$PSComputerInfo = @{ }
|
||||
$PSComputerInfo.Add("serial", $($ComputerSystemProduct.IdentifyingNumber))
|
||||
$PSComputerInfo.Add("manufacturer", $($ComputerSystemProduct.Vendor))
|
||||
$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
|
||||
|
||||
|
||||
#Load variables from .env file in to env:\ drive.
|
||||
function Load-EnvFile
|
||||
{
|
||||
[CmdletBinding()]
|
||||
Param ()
|
||||
#Exit with an error if there's not .env file in the current working directory.
|
||||
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 "#*")}
|
||||
$EnvFile = Get-Content .env | where { !([string]::IsNullOrWhiteSpace($_)) -and ($_ -notlike "#*") }
|
||||
foreach ($Line in $EnvFile)
|
||||
{
|
||||
$variableKey, $variableValue = $Line.split('=')
|
||||
Write-Verbose "$variableKey will be set to $variableValue"
|
||||
Set-Content env:\$variableKey $variableValue
|
||||
Set-Content env:\$variableKey $variableValue
|
||||
}
|
||||
}
|
||||
|
||||
@ -73,64 +78,38 @@ function Get-SnipeAssetNumber
|
||||
else
|
||||
{
|
||||
return $response.asset_tag
|
||||
}
|
||||
}
|
||||
|
||||
function Get-BiosTool
|
||||
{
|
||||
[CmdletBinding(ConfirmImpact = 'Medium')]
|
||||
param
|
||||
(
|
||||
[Parameter(Mandatory = $true,
|
||||
Position = 1)]
|
||||
[String]$DeviceType
|
||||
)
|
||||
|
||||
switch ($DeviceType) {
|
||||
Desktop {
|
||||
Invoke-WebRequest -Uri "$env:AMIDEWINx64_URL" -OutFile "$ScriptTemp\AMIDEWINx64.zip"
|
||||
try
|
||||
{
|
||||
Expand-Archive -Path "$ScriptTemp\AMIDEWINx64.zip" -DestinationPath "$ScriptTemp" -Force
|
||||
}
|
||||
catch
|
||||
{
|
||||
Write-Host "An error occurred:"
|
||||
Write-Host $_
|
||||
}
|
||||
finally
|
||||
{
|
||||
Remove-Item "$ScriptTemp\AMIDEWINx64.zip" -Force
|
||||
}
|
||||
}
|
||||
Laptop {
|
||||
#<code>
|
||||
}
|
||||
default {
|
||||
exit
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
If ($ComputerSystemProduct.Vendor -like "Lenovo")
|
||||
If ($PSComputerInfo.manufacturer -like "Lenovo")
|
||||
{
|
||||
Get-BiosTool -DeviceType Desktop
|
||||
|
||||
$PSComputerInfo = @{ }
|
||||
$PSComputerInfo.Add("serial", $($ComputerSystemProduct.IdentifyingNumber))
|
||||
$PSComputerInfo.Add("model_number", $($ComputerSystemProduct.Name))
|
||||
$PSComputerInfo.Add("model_name", $($ComputerSystemProduct.Version))
|
||||
|
||||
$SnipeAssetTag = Get-SnipeAssetNumber -Serial $PSComputerInfo.serial
|
||||
|
||||
$params = @{
|
||||
FilePath = "$ScriptTemp\AMIDEWINx64\AMIDEWINx64.exe"
|
||||
ArgumentList = "/CA `"$SnipeAssetTag`""
|
||||
switch -wildcard ($PSComputerInfo.model_name)
|
||||
{
|
||||
"ThinkCentre*" {
|
||||
Invoke-WebRequest -Uri "$env:AMIDEWINx64_URL" -OutFile "$ScriptTemp\Lenovo-Asset-Tag-Writer.zip"
|
||||
$params = @{
|
||||
FilePath = "$ScriptTemp\AMIDEWINx64\AMIDEWINx64.exe"
|
||||
ArgumentList = "/CA `"$SnipeAssetTag`""
|
||||
}
|
||||
}
|
||||
"ThinkPad*" {
|
||||
Invoke-WebRequest -Uri "$env:WINAIA_URL" -OutFile "$ScriptTemp\Lenovo-Asset-Tag-Writer.zip"
|
||||
$params = @{
|
||||
FilePath = "$ScriptTemp\WINAIA\WinAIA64.exe"
|
||||
ArgumentList = "-set `"USERASSETDATA.ASSET_NUMBER=`"$SnipeAssetTag`"`""
|
||||
}
|
||||
}
|
||||
default {
|
||||
Write-Error "Device model not supported."
|
||||
exit 99
|
||||
}
|
||||
}
|
||||
|
||||
Expand-Archive -Path "$ScriptTemp\Lenovo-Asset-Tag-Writer.zip" -DestinationPath "$ScriptTemp" -Force
|
||||
Remove-Item "$ScriptTemp\Lenovo-Asset-Tag-Writer.zip" -Force
|
||||
Start-Process @params -Wait -NoNewWindow
|
||||
|
||||
Remove-Item $ScriptTemp\* -Recurse
|
||||
}
|
||||
else
|
||||
@ -141,8 +120,8 @@ else
|
||||
# SIG # Begin signature block
|
||||
# MIIvYQYJKoZIhvcNAQcCoIIvUjCCL04CAQExDzANBglghkgBZQMEAgEFADB5Bgor
|
||||
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
|
||||
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBJvdq7f24iN171
|
||||
# +rfGmoyWkbHBZh/RhhkGQIP0j4bv+KCCKGYwggQyMIIDGqADAgECAgEBMA0GCSqG
|
||||
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCknNZ3BWTVBjx3
|
||||
# QI2DdsPw9Qtwj9YGGOLljsSJ2MVKqKCCKGYwggQyMIIDGqADAgECAgEBMA0GCSqG
|
||||
# SIb3DQEBBQUAMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNo
|
||||
# ZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1p
|
||||
# dGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2VydmljZXMwHhcNMDQwMTAx
|
||||
@ -361,35 +340,35 @@ else
|
||||
# MYIGUTCCBk0CAQEwaDBUMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBM
|
||||
# aW1pdGVkMSswKQYDVQQDEyJTZWN0aWdvIFB1YmxpYyBDb2RlIFNpZ25pbmcgQ0Eg
|
||||
# UjM2AhAtmKdfiMvdO1IQbTd6fBa6MA0GCWCGSAFlAwQCAQUAoEwwGQYJKoZIhvcN
|
||||
# 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
|
||||
# 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
|
||||
# AgEBMG8wWzELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2Ex
|
||||
# MTAvBgNVBAMTKEdsb2JhbFNpZ24gVGltZXN0YW1waW5nIENBIC0gU0hBMzg0IC0g
|
||||
# RzQCEAEHZJsIsKf+fdZUqPL0KfYwCwYJYIZIAWUDBAIBoIIBPTAYBgkqhkiG9w0B
|
||||
# CQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yNDEyMTYyMTM0NDRaMCsG
|
||||
# CQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yNDEyMTcwMDM5NTJaMCsG
|
||||
# CSqGSIb3DQEJNDEeMBwwCwYJYIZIAWUDBAIBoQ0GCSqGSIb3DQEBCwUAMC8GCSqG
|
||||
# SIb3DQEJBDEiBCCMgwQNoEdvo9nwFeuglFIwxtvpzpeBx9DVkl8i9UyI0zCBpAYL
|
||||
# SIb3DQEJBDEiBCDsQWi4AJ+q/D3ngPGfrAf5yiolSzU4btYkWbYvuysupTCBpAYL
|
||||
# KoZIhvcNAQkQAgwxgZQwgZEwgY4wgYsEFETTk5zNG4h/hnrM2oHsrw9l/NJZMHMw
|
||||
# X6RdMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEw
|
||||
# LwYDVQQDEyhHbG9iYWxTaWduIFRpbWVzdGFtcGluZyBDQSAtIFNIQTM4NCAtIEc0
|
||||
# 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==
|
||||
# AhABB2SbCLCn/n3WVKjy9Cn2MA0GCSqGSIb3DQEBCwUABIIBgEHnjlrDy0Ax4u1e
|
||||
# iWOzYH2gf/PyLbPJWTJJtNr1CnQmcu6prIJcUA73DnSHrgndyRvVax2BsNNHFYwK
|
||||
# 6PPfUtSa9Tx5Znah+juAzkX7wpUBqGrXWyLEdDFteEZzORCs5gN6PuhL7P8Hccp4
|
||||
# G/MWpbOb354jZhb7s1UgPKkZcvLzl1N1WzR5NAbW3MSGKX6Aw91OHqGPi+03xAGP
|
||||
# UVmqCSovtnXNQoPgmOJSnqyU579mJPV03Tbngw1CrIupZBTkeXACfDyHoHwR4vTE
|
||||
# tUKJEhjwh0tINFTzC0tbcQKfkHpTzcjycAP+3cjXRUQzgA0EtYXdP2XovKmaQxsj
|
||||
# Fm3HOCuqprPQQ0XHrsmA8tCNJe+BHAkrDuxNdNfHS5KglnsQAt9qvnUdbf11MBPA
|
||||
# LWSsPb9P084++TtZi0znnZ9v8kpyOsav0GBXAXF8x/Q4T0oBOr50qsyjOpqNGBtm
|
||||
# Y4Xi489w64hG6Uk8T7CM725wUK0kxL2GAHQvkiCMagjwvzXYVA==
|
||||
# SIG # End signature block
|
||||
|
||||
Loading…
Reference in New Issue
Block a user