Powershell,远程脚本访问被拒绝网络资源

时间:2011-10-17 13:08:34

标签: powershell powershell-remoting

我正在尝试使用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方法时抛出。

具有读写权限的每个人都可以访问该文件。 应该运行脚本的机器(.181)和运行它的机器都具有相同的凭据,因此我不会在invoke-command cmdlet中传递它们。 共享计算机(.1)具有不同的凭据,但从.181本地调用脚本时,这从来不是问题。

你能指出我正确的方向吗?我坚持这一步,自己无法找到解决方案。我尝试使用WebClient#DownloadString方法下载xml字符串并传递共享计算机的凭据,但它没有帮助。

提前致谢

1 个答案:

答案 0 :(得分:9)

可能是double hop问题。您必须使用CredSSP将您的凭据委派给远程计算机。

尝试此处提到的解决方案:http://blogs.msdn.com/b/clustering/archive/2009/06/25/9803001.aspx