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



我知道这是一个许可的问题,但我不知道在哪里。

基本上我有一个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-TOpython.exe: can't open file 'PATH TO .PY': [Errno 13] Permission denied

python文件在网络共享中。我试着给"每个人"将读/写分组到文件夹中查看结果,但结果仍然相同。

我唯一的想法是,当服务器执行时,scriptblock在哪个用户下运行,以及我是否需要提供凭据。

正如评论所说,这是一个臭名昭著的PowerShell双跳问题。

服务器(我)调用服务器B在"服务器c"上运行脚本。(网络共享).

我说"Server "是因为网络共享被附加到服务器B本身。我在脚本块中使用了直接路径而不是网络共享路径,一切正常。从服务器A到服务器B。

以前,我打算采用传递凭据的方式(不是Credssp的粉丝),但是当我传递凭据时,即使这样也不起作用。

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

相关内容

最新更新