最有可能
Get-WmiObject
无法从远程计算机查询信息。因为您指示cmdlet在出现错误时继续(
-ErrorAction SilentlyContinue
$SystemProp
当发生错误时,结果为空
$SystemProp.Name
评估结果为
$null
您可以通过分配
$Computer
而不是
到记录集,至少作为这样的回退:
$RecordSet.Fields.Item("CompName") = if (-not $SystemProp) {
$Computer
} else {
$SystemProp.Name
}
$ErrorActionPreference = 'Stop'
try {
$SystemProp = Get-WmiObject -Class Win32_ComputerSystem -Credential $PSCredential -ComputerName $Computer
$RecordSet.AddNew()
$RecordSet.Fields.Item("DateRan") = Get-Date
$RecordSet.Fields.Item("Domain") = $SystemProp.Domain
$RecordSet.Fields.Item("CompName") = $SystemProp.Name
$RecordSet.Fields.Item("Model") = $SystemProp.Model
$RecordSet.Fields.Item("Manufacturer") = $SystemProp.Manufacturer
} catch {
Write-Error $_ -ErrorAction Continue
}
你也可以
retry
在放弃之前几次。