我正在尝试在Power Shell脚本中执行程序。使用Runspaces从C#方法调用PS脚本。该程序尝试对远程服务器上的配置文件进行更新。当我运行整个过程时,出现以下错误:
System.UnauthorizedAccessException:对路径\\ some路径的访问被拒绝。
PS脚本位于远程服务器上。如果我直接在服务器上运行PS脚本,则PS脚本及其中的程序可以正常运行,并且能够访问远程系统。
有人遇到过吗?有人告诉我这失败了,因为我正在通过Visual Studio和C#运行它,并且不允许我通过通过C#类运行的Powershell脚本访问网络资源。有人告诉我,我在运行空间中启动PS脚本所使用的权限未转换为我在脚本中调用的程序。
其他想法和可能的解决方案?
谢谢
最佳答案
您似乎正在尝试修改辅助服务器上UNC路径上的文件。由于存在古老的“双跳”问题,因此无法使用。您在计算机A上,在B上执行远程脚本,试图修改C上的文件。从A到B的身份验证无法重复使用以从B到C的连接。这是NTLM(Windows集成身份验证)的设计限制。
但是,一切都不会丢失:在将Powershell从A远程连接到B时,必须使用CredSSP身份验证,然后才能毫无问题地连接到C。
引用文献:
关于visual-studio-2010 - 远程处理时通过Powershell脚本访问UNC路径时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18002717/