MakeAlias, ModelAlias & SystemAlias
These three variables are very detailed and have a lot of code associated with them, so it's being broken down into their own page to allow easier understanding of how they are being derived.
Based on several different OEMs, these three variables will use different data points to best allow matching criteria. Examples of some common OEMs, which are broken down by what is matched on Win32_ComputerSystem Manufacturer
NOTE, IsVM is also set during this section, as depending on the Make & Model, it will set IsVM
*Hewlett-Packard* & *HP*
MakeAlias: HP
ModelAlias: Win32_ComputerSystem - Model
SystemAlias: MS_SystemInformation - BaseBoardProduct
*Dell*
MakeAlias: Dell
ModelAlias: Win32_ComputerSystem - Model
SystemAlias: MS_SystemInformation - SystemSku
*Lenovo*
MakeAlias: Lenovo
ModelAlias: Win32_ComputerSystemProduct - Version
SystemAlias: Win32_ComputerSystem- (Model).SubString(0, 4)
*Panasonic*
MakeAlias: Panasonic Corporation
ModelAlias: Win32_ComputerSystem - Model
SystemAlias: MS_SystemInformation - BaseBoardProduct
*Intel(R) Client Systems*
MakeAlias: Intel(R) Client Systems
ModelAlias: Win32_ComputerSystemProduct - Version
SystemAlias: Win32_ComputerSystem- Model
*Microsoft*
MakeAlias: Microsoft
ModelAlias: Win32_ComputerSystem - Model
SystemAlias:
Physical: MS_SystemInformation - SystemSku
VM: MS_SystemInformation - SystemVersion
There are several more, but to see exactly what is going on, you'll need to dive into the code, which is below.
# Generate ModelAlias, MakeAlias and SystemAlias
$LocalInfo = @{}
$LocalInfo['Make'] = (Get-CimInstance -ClassName Win32_ComputerSystem).Manufacturer.Trim()
$LocalInfo['IsVM'] = "False"
Switch -Wildcard ($LocalInfo['Make']) {
"*Microsoft*" {
$LocalInfo['MakeAlias'] = "Microsoft"
$LocalInfo['ModelAlias'] = (Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -ExpandProperty Model).Trim()
$LocalInfo['SystemAlias'] = Get-CimInstance -ClassName MS_SystemInformation -Namespace root\wmi | Select-Object -ExpandProperty SystemSKU
# Logic for Hyper-V Testing
If ($LocalInfo['ModelAlias'] -eq "Virtual Machine") {
$LocalInfo['SystemAlias'] = Get-CimInstance -ClassName MS_SystemInformation -Namespace root\wmi | Select-Object -ExpandProperty SystemVersion
$LocalInfo['IsVM'] = "True"
}
}
"*HP*" {
$LocalInfo['MakeAlias'] = "HP"
$LocalInfo['ModelAlias'] = (Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -ExpandProperty Model).Trim()
$LocalInfo['SystemAlias'] = (Get-CimInstance -ClassName MS_SystemInformation -NameSpace root\wmi).BaseBoardProduct.Trim()
}
"*VMWare*" {
$LocalInfo['MakeAlias'] = "VMWare"
# $LocalInfo['ModelAlias'] = (Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -ExpandProperty Model).Trim() # Default, sets alias to same as model
# $LocalInfo['ModelAlias'] = ((Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -ExpandProperty Model).Trim()).replace(",","_") # Remove the "," and replace with "_"
$LocalInfo['ModelAlias'] = ((Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -ExpandProperty Model).Trim()).replace(" ","_").replace(",","_") # Remove the "," and replace with "_", Remove the " " and replace with "_"
$LocalInfo['SystemAlias'] = Get-CimInstance -ClassName MS_SystemInformation -Namespace root\wmi | Select-Object -ExpandProperty SystemSKU
$LocalInfo['IsVM'] = "True"
}
"*QEMU*" {
$LocalInfo['MakeAlias'] = "QEMU"
$LocalInfo['ModelAlias'] = (Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -ExpandProperty Model).Trim()
$LocalInfo['SystemAlias'] = Get-CimInstance -ClassName MS_SystemInformation -Namespace root\wmi | Select-Object -ExpandProperty SystemSKU
$LocalInfo['IsVM'] = "True"
}
"*Innotek*" {
$LocalInfo['MakeAlias'] = "Innotek"
$LocalInfo['ModelAlias'] = (Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -ExpandProperty Model).Trim()
$LocalInfo['SystemAlias'] = Get-CimInstance -ClassName MS_SystemInformation -Namespace root\wmi | Select-Object -ExpandProperty SystemSKU
$LocalInfo['IsVM'] = "True"
}
"*Hewlett-Packard*" {
$LocalInfo['MakeAlias'] = "HP"
$LocalInfo['ModelAlias'] = (Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -ExpandProperty Model).Trim()
$LocalInfo['SystemAlias'] = (Get-CimInstance -ClassName MS_SystemInformation -NameSpace root\wmi).BaseBoardProduct.Trim()
}
"*Dell*" {
$LocalInfo['MakeAlias'] = "Dell"
$LocalInfo['ModelAlias'] = (Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -ExpandProperty Model).Trim()
$LocalInfo['SystemAlias'] = (Get-CimInstance -ClassName MS_SystemInformation -NameSpace root\wmi ).SystemSku.Trim()
}
"*Lenovo*" {
$LocalInfo['MakeAlias'] = "Lenovo"
$LocalInfo['ModelAlias'] = (Get-CimInstance -ClassName Win32_ComputerSystemProduct | Select-Object -ExpandProperty Version).Trim()
$LocalInfo['SystemAlias'] = ((Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -ExpandProperty Model).SubString(0, 4)).Trim()
}
"*Intel(R) Client Systems*" {
$LocalInfo['MakeAlias'] = "Intel(R) Client Systems"
$LocalInfo['ModelAlias'] = (Get-CimInstance -ClassName Win32_ComputerSystemProduct | Select-Object -ExpandProperty Version).Trim()
$LocalInfo['SystemAlias'] = ((Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -ExpandProperty Model).Trim())
$LocalInfo['SystemAlias'] = $LocalInfo['SystemAlias'].SubString(0, $LocalInfo['SystemAlias'].IndexOf("i")).Trim()
}
"*Panasonic*" {
$LocalInfo['MakeAlias'] = "Panasonic Corporation"
$LocalInfo['ModelAlias'] = (Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -ExpandProperty Model).Trim()
$LocalInfo['SystemAlias'] = (Get-CimInstance -ClassName MS_SystemInformation -NameSpace root\wmi ).BaseBoardProduct.Trim()
}
"*Viglen*" {
$LocalInfo['MakeAlias'] = "Viglen"
$LocalInfo['ModelAlias'] = (Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -ExpandProperty Model).Trim()
$LocalInfo['SystemAlias'] = (Get-CimInstance -ClassName Win32_BaseBoard | Select-Object -ExpandProperty SKU).Trim()
}
"*AZW*" {
$LocalInfo['MakeAlias'] = "AZW"
$LocalInfo['ModelAlias'] = (Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -ExpandProperty Model).Trim()
$LocalInfo['SystemAlias'] = (Get-CimInstance -ClassName MS_SystemInformation -NameSpace root\wmi ).BaseBoardProduct.Trim()
}
"*Fujitsu*" {
$LocalInfo['MakeAlias'] = "Fujitsu"
$LocalInfo['ModelAlias'] = (Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -ExpandProperty Model).Trim()
$LocalInfo['SystemAlias'] = (Get-CimInstance -ClassName Win32_BaseBoard | Select-Object -ExpandProperty SKU).Trim()
}
Default {
$LocalInfo['MakeAlias'] = "NA"
$LocalInfo['ModelAlias'] = "NA"
$LocalInfo['SystemAlias'] = "NA"
}
# Closing for switch block
}
Running the Code:
PS C:\WINDOWS\system32> $LocalInfo
Name Value
---- -----
Make HP
MakeAlias HP
IsVM False
ModelAlias HP ZBook Studio 16 inch G10 Mobile Workstation PC
SystemAlias 8B8F
Last updated