1

我正在尝试在 power shell 脚本中执行一个程序。正在使用运行空间从 C# 方法调用 PS 脚本。该程序尝试更新远程服务器上的配置文件。当我运行这整个事情时,我收到以下错误:

System.UnauthorizedAccessException:对路径 \\some 路径的访问被拒绝。

PS 脚本位于远程服务器上。如果我直接在服务器上运行 PS 脚本,那么 PS 脚本和其中的程序运行良好并且能够访问远程系统。

有没有人遇到过这个?有人告诉我这是失败的,因为我通过 Visual Studio 和 C# 运行它,并且不允许我通过通过 C# 类运行的 powershell 脚本访问网络资源。其他人告诉我,我用于在运行空间中启动 PS 脚本的权限并未转换为我在脚本中调用的程序。

其他想法和可能的解决方案?

谢谢

4

1 回答 1

6

您似乎正在尝试修改辅助服务器上 UNC 路径上的文件。由于古老的“双跳”问题,这将不起作用。您在机器 A 上,在 B 上执行远程脚本,试图修改 C 上的文件。您从 A 到 B 的身份验证不能重复用于从 B 到 C 的连接。这是 NTLM(Windows 集成身份验证)的设计限制。

但是,一切都没有丢失:在从 A 到 B 的 powershell 远程连接时,您必须使用 CredSSP 身份验证,然后您可以毫无问题地连接到 C。

参考:

于 2013-08-01T19:30:04.940 回答