PowershellでLocalhostをテストしますか?


8

私はPowerShellのスクリプトの呼び出しその持っているGet-WmiObjectとします-Credential。ただし、これをローカルマシンに対して実行すると、エラーが発生します。

Get-WmiObject : User credentials cannot be used for local connections

このエラーを回避するためにif localhostロジックを追加する適切な方法は何ですか?それとももっと良い方法がありますか?


computernameパラメータをどのように渡しますか?
クリストファー

@クリストファー:IP(10.xxx)では、アプリケーションが実行するため、それをあまり制御できません。
Kyle Brandt、

回答:


3

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
}

PSでは、発生しているエラーの特定の例外をキャッチできますか?
Kyle Brandt

.NET例外クラスを知っている場合は、次のようにしてそれを行うことができます... catch [System.Net.SomeWMIExceptionClass] {コードがここに入る}
Christopher

私は間違っています。この質問stackoverflow.com/questions/3097785/…と私が行ったいくつかのテストによれば、PowerShellは例外をラップして、特定のエラーをキャッチできないようにします。
クリストファー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.