我正在尝试使用调用命令远程执行 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])
当在机器上本地调用该脚本时,它会在没有任何问题的情况下运行并读取配置文件。但是,当我使用调用命令从不同的机器上运行它时,我得到了
“访问路径 '\\192.168.137.1\share\config.xml' 被拒绝”
执行Load方法时抛出的异常。
具有读写权限的每个人都可以访问该文件。应该运行脚本的机器 (.181) 和物理上运行它的机器都具有相同的凭据,因此我不会在调用命令 cmdlet 中传递它们。共享机器 (.1) 具有不同的凭据,但是从 .181 本地调用脚本时,这从来不是问题。
你能指出我正确的方向吗?我坚持这一步,无法自己找到解决方案。我尝试使用 WebClient#DownloadString 方法下载 xml 字符串并为共享机器传递凭据,但它没有帮助。
提前致谢