簡體   English   中英

使用 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 文件位於網絡共享上。 我試過讓“每個人”組讀/寫文件夾以查看結果,但它仍然相同。

我唯一的想法歸結為服務器執行時腳本塊在哪個用戶下運行,以及我是否需要提供憑據。

正如評論所述,這是臭名昭著的 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM