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