Public/Get-My.ps1
<#
.SYNOPSIS Returns the Bios SerialNumber .DESCRIPTION Returns the Bios SerialNumber .PARAMETER Brief Returns a short version removing soem non-standard characters .LINK https://osd.osdeploy.com/module/functions/getmy .NOTES #> function Get-MyBiosSerialNumber { [CmdletBinding()] param ( #Normalize the Return [switch]$Brief ) $Result = ((Get-CimInstance -ClassName Win32_BIOS).SerialNumber).Trim() if ($Brief -eq $true) { if ($null -eq $Result) {$Result = 'Unknown'} elseif ($Result -eq '') {$Result = 'Unknown'} #Allow only a-z A-Z 0-9 $Result = $Result -replace '_' $Result = $Result -replace '\W' } $Result } <# .SYNOPSIS Returns the Bios Version .DESCRIPTION Returns the Bios Version .LINK https://osd.osdeploy.com/module/functions/getmy .NOTES #> function Get-MyBiosVersion { [CmdletBinding()] param () ((Get-CimInstance -ClassName Win32_BIOS).SMBIOSBIOSVersion).Trim() } <# .SYNOPSIS Returns the Computer Manufacturer .DESCRIPTION Returns the Computer Manufacturer .PARAMETER Brief Returns a shortened Computer Manufacturer .LINK https://osd.osdeploy.com/module/functions/getmy .NOTES #> function Get-MyComputerManufacturer { [CmdletBinding()] param ( [switch]$Brief ) $Result = ((Get-CimInstance -ClassName CIM_ComputerSystem).Manufacturer).Trim() if ($Brief -eq $true) { if ($null -eq $Result) {$Result = 'Unknown'} elseif ($Result -eq '') {$Result = 'Unknown'} elseif ($Result -match 'Dell') {$Result = 'Dell'} elseif ($Result -match 'Lenovo') {$Result = 'Lenovo'} elseif ($Result -match 'Hewlett Packard') {$Result = 'HP'} elseif ($Result -match 'HP') {$Result = 'HP'} elseif ($Result -match 'Microsoft') {$Result = 'Microsoft'} elseif ($Result -match 'Panasonic') {$Result = 'Panasonic'} elseif ($Result -match 'to be filled') {$Result = 'Generic'} } $Result } <# .SYNOPSIS Returns the Computer Model .DESCRIPTION Returns the Computer Model .PARAMETER Brief Returns a modified Computer Model for Generic and Unknown .LINK https://osd.osdeploy.com/module/functions/getmy .NOTES #> function Get-MyComputerModel { [CmdletBinding()] param ( #Normalize the Return [switch]$Brief ) if ((Get-MyComputerManufacturer -Brief) -match 'Lenovo') { $Result = ((Get-CimInstance -ClassName Win32_ComputerSystemProduct).Version).Trim() } else { $Result = ((Get-CimInstance -ClassName CIM_ComputerSystem).Model).Trim() } if ($Brief -eq $true) { if ($null -eq $Result) {$Result = 'Unknown'} elseif ($Result -eq '') {$Result = 'Unknown'} elseif ($Result -match 'to be filled') {$Result = 'Generic'} } $Result } <# .SYNOPSIS Returns the ComputerSystem Product (SystemSku, BaseBoardProduct) .DESCRIPTION Returns the ComputerSystem Product (SystemSku, BaseBoardProduct) .LINK https://osd.osdeploy.com/module/functions/getmy .NOTES #> function Get-MyComputerProduct { [CmdletBinding()] param () $Manufacturer = Get-MyComputerManufacturer -Brief if ($Manufacturer -match 'Dell') { ((Get-WmiObject -Class Win32_ComputerSystem).SystemSKUNumber).Trim() } elseif ($Manufacturer -match 'HP') { ((Get-WmiObject -Class Win32_BaseBoard).Product).Trim() } elseif ($Manufacturer -match 'Lenovo') { ((Get-WmiObject -Class Win32_ComputerSystem | Select-Object -ExpandProperty Model).SubString(0, 4)).Trim() } elseif ($Manufacturer -match 'Microsoft') { (Get-WmiObject -Namespace root\wmi -Class MS_SystemInformation | Select-Object -ExpandProperty SystemSKU).Replace("_", " ") } else { (Get-CIMInstance -ClassName MS_SystemInformation -NameSpace root\WMI).BaseBoardProduct } } |