使用 PowerShell 调用服务器到 运行 python 脚本:无法打开文件 [Errno 13] 权限被拒绝

Invoke server with PowerShell to run python script: can't open file [Errno 13] Permission denied

我知道这是一个权限问题,但我不知道是哪里。

基本上我有一个 PowerShell 脚本,它从本地用户那里获取一些信息,然后通过 python 将其发送到 API。由于某种原因,我发布的 API 无法从 PowerShell 中正确获取 JSON(无论您做什么都认为它格式不正确)所以我使用 python 来完成最后一点。

调用必须来自我们的服务器 ip 所以我必须将信息传递给服务器 & python 文件并调用服务器来调用 API。我这样做:

Invoke-Command -ComputerName $servername -ScriptBlock {python.exe "PATH TO .PY" -id $using:CaseID -tag $using:serviceTag -m $using:message}

我得到:

C:\PATH-TO\python.exe: can't open file 'PATH TO .PY': [Errno 13] Permission denied

python 文件位于网络共享上。我已经尝试将“所有人”组 read/write 放入文件夹以查看结果,但结果仍然相同。

我唯一的想法归结为服务器执行时脚本块 运行 下的用户,以及我是否需要提供凭据。

如评论所述,这是臭名昭著的 PowerShell 双跃点问题。

服务器 A (我) 调用 服务器 B 到 运行“服务器 C”上的脚本(网络共享).

我说“服务器 C”的原因是因为网络共享附加到 服务器 B 本身。我在脚本块中使用了直接路径而不是网络共享路径,一切正常。那时基本上是服务器 A 到 B。

之前,我打算走通过凭据的路线(不是 Credssp 的粉丝),但是当我通过它们时,即使这样也不起作用。

最好的文档在这里: https://docs.microsoft.com/en-us/archive/blogs/ashleymcglone/powershell-remoting-kerberos-double-hop-solved-securely