我有一个powershell脚本调用Get-WmiObject与-Credential 。 但是,如果我在本地机器上运行这个错误,则会出错:
Get-WmiObject : User credentials cannot be used for local connections
添加一个if localhost逻辑来避免这个错误的正确方法是什么? 还是有更好的办法?
您可以随时通过WMI查询本地IP,并将其存储在$ localIP中,然后将其与pipe道或arrays中当前下一个地址进行匹配:
if ($localIP -eq $otherIP) { get-wmiobject without -credential } else { existing query }
如果你把它封装在一个try catch块中,并且在第一个命令中有错误停止,它将会捕获错误并且不带凭证地运行catch块。
Try { Get-WmiObject -Credential domain\user -ComputerName localhost -class Win32_BIOS -erroraction Stop } Catch { Get-WmiObject -ComputerName localhost -class Win32_BIOS }