在 Powershell 中测试 Localhost?

在 Powershell 中测试 Localhost?

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
}

相关内容