8

invoke-command を使用してリモートで powershell スクリプトを実行しようとしています。スクリプトは、ローカル ネットワーク経由で利用できる構成ファイルに依存しています。スクリプトは次の方法で呼び出されます。

Invoke-Command -ComputerName 192.168.137.181 -FilePath c:\scripts\script.ps1 -ArgumentList \\192.168.137.1\share\config.xml

ご覧のとおり、構成はxmlファイルであり、次を使用してロードされます。

$xml = New-Object XML
$xml.Load(args[0])

スクリプトがマシン上でローカルに呼び出されると、問題なく実行され、構成ファイルが読み取られます。ただし、invokeコマンドを使用して別のマシンから実行すると、

「パス '\\192.168.137.1\share\config.xml' へのアクセスが拒否されました」

Load メソッドの実行時にスローされる例外。

このファイルは、読み取りおよび書き込み権限を持つすべてのユーザーがアクセスできます。scrip を実行する必要があるマシン (.181) とそれが物理的に実行されるマシンの両方が同じ資格情報を持っているため、invoke-command コマンドレットでそれらを渡しません。共有マシン (.1) には異なる資格情報がありますが、スクリプトを .181 からローカルで呼び出す場合、これは問題になりませんでした。

正しい方向に向けてください。私はこのステップに固執し、自分で解決策を見つけることができません。WebClient#DownloadString メソッドを使用して xml 文字列をダウンロードし、共有マシンの資格情報を渡そうとしましたが、役に立ちませんでした。

前もって感謝します

4

1 に答える 1

8

おそらくdouble hop問題です。クレデンシャルをリモートコンピューターに委任するには、CredSSPを使用する必要があります。

ここに記載されているソリューションを試してください:http://blogs.msdn.com/b/clustering/archive/2009/06/25/9803001.aspx

于 2011-10-17T15:08:55.883 に答える