使用 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 的粉丝),但是当我通过它们时,即使这样也不起作用。
我知道这是一个权限问题,但我不知道是哪里。
基本上我有一个 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 的粉丝),但是当我通过它们时,即使这样也不起作用。