Thank you Sherry. As it turns out, all of the problem systems were running the Japanese language pack and the output was not recognized as valid output by Netsh. To work around this issue, I forced the language to English for the duration of the Powershell session by adding 'chcp 437' to the beginning of the script.
Updated final script:
If anyone is interested, here is the final PS script.
chcp 437
$CurrentEA = $ErrorActionPreference
$ErrorActionPreference = 'SilentlyContinue'
(Get-WmiObject -Namespace root\cimv2 -class CM_SIMCard).Delete()
$ErrorActionPreference = $CurrentEA
# Use Netsh to get the values of the SIM card
$DeviceID = ((netsh mbn show interfaces | find "Device Id") -split ': ')[1]
$SIMICCID = ((netsh mbn show readyinfo * | findstr "SIM ICC ID") -split ': ')[1]
$PhysicalAddress = ((netsh mbn show interfaces | find "Physical Address") -split ': ')[1]
$Manufacturer = ((netsh mbn show interfaces | findstr "Manufacturer") -split ': ')[1]
$Model = ((netsh mbn show interfaces | findstr "Model") -split ': ')[1]
$TelephoneNumber = ((netsh mbn show readyinfo * | findstr "Telephone #") -split ': ')[1]
$newClass = New-Object System.Management.ManagementClass("root\cimv2", [String]::Empty, $null);
$newClass["__CLASS"] = "CM_SIMCard";
$newClass.Qualifiers.Add("Static", $true)
$newClass.Properties.Add("DeviceID", [System.Management.CimType]::String, $false)
$newClass.Properties["DeviceID"].Qualifiers.Add("key", $true)
$newClass.Properties["DeviceID"].Qualifiers.Add("read", $true)
$newClass.Properties.Add("SIMICCID", [System.Management.CimType]::String, $false)
$newClass.Properties["SIMICCID"].Qualifiers.Add("read", $true)
$newClass.Properties.Add("PhysicalAddress", [System.Management.CimType]::String, $false)
$newClass.Properties["PhysicalAddress"].Qualifiers.Add("read", $true)
$newClass.Properties.Add("Manufacturer", [System.Management.CimType]::String, $false)
$newClass.Properties["Manufacturer"].Qualifiers.Add("read", $true)
$newClass.Properties.Add("Model", [System.Management.CimType]::String, $false)
$newClass.Properties["Model"].Qualifiers.Add("read", $true)
$newClass.Properties.Add("TelephoneNumber", [System.Management.CimType]::String, $false)
$newClass.Properties["TelephoneNumber"].Qualifiers.Add("read", $true)
$newClass.Put()
# Set the instance
Set-WmiInstance -Class CM_SIMCard -Argument @{DeviceID=$DeviceID;SIMICCID=$SIMICCID;PhysicalAddress=$PhysicalAddress;Manufacturer=$Manufacturer;Model=$Model;TelephoneNumber=$TelephoneNumber}|Out-Null
# Set the return code
if (Get-WmiObject -Class CM_SIMCard)
{
$Compliance = 'True'
}
Else
{
$Compliance = 'False'
}
$Compliance