Get-WmiObject
我有一个使用调用的 powershell 脚本-Credential
。但是,如果我在本地机器上运行它,就会出错:
Get-WmiObject : User credentials cannot be used for local connections
添加 if localhost 逻辑以避免此错误的正确方法是什么?或者有更好的方法吗?
答案1
您可以随时通过 WMI 查询本地 IP 并将其存储在 $localIP 中,然后将其与管道或数组中当前的地址进行匹配:
if ($localIP -eq $otherIP) { get-wmiobject without -credential }
else { existing query }
答案2
如果您将其包装在带有第一个命令上的 erroraction stop 的 try catch 块中,它将捕获错误并在没有凭据的情况下运行 catch 块。
Try
{
Get-WmiObject -Credential domain\user -ComputerName localhost -class Win32_BIOS -erroraction Stop
}
Catch
{
Get-WmiObject -ComputerName localhost -class Win32_BIOS
}