Python - 如何使用 pywinrm 写入 window 共享文件夹路径(例如 \\192.168.1.19\cert\testcert.pfx)

Python - how to write a window shared folder path (ex. \\192.168.1.19\cert\testcert.pfx) using pywinrm

我访问一台远程机器来自动执行一些 ssl 任务。要从远程完成此操作,我需要从 windows 中的共享网络文件夹导入一个文件。我使用 pywinrm 然后在一个成功的会话开始后我 运行:

s.run_ps('''
    $Password = ConvertTo-SecureString -AsPlainText -Force {0}
    Import-PfxCertificate -FilePath {1} -CertStoreLocation Cert:\LocalMachine\WebHosting - 
    Password $Password
    '''.format(secret, path)

在本地文件夹路径中使用类似的脚本我没有任何问题,但输入类似这样的内容 \192.168.1.19\cert\testcert.pfx 我有以下错误

std_error b'Import-PfxCertificate : The system cannot find the path specified. 0x80070003 \n(WIN32: 3 ERROR_PATH_NOT_FOUND)\nAt line:3 char:9\n+         Import-PfxCertificate -FilePath \192.168.1.19\Certificates1\test ...\n+

我构建了这条路径,如字符串 "host"+"\"+cert+"\"+file 其中 host = "\192.168.1.19", cert = "Certificates1", and file = "testcert.pfx"

我已经看到在 powershell 中我应该准确地键入 PS C:\>\192.168.1.19\cert\testcert.pfx 并且它可以工作但是指向错误将 python 传递给 powershell 的字符串是 \ 而不是转义并且只传递一个反斜杠.

有什么帮助或建议吗?

提前致谢。

the error the string that is passing python to powershell is \ and not escaping and passing only one backslash.

\ = \ 所以你需要做 host = "\\192.168.1.19"

问题涉及第二跳问题,因此脚本在远程处理时无法访问另一个网络共享文件。 解决方案是将身份验证更改为 CredSSP 并允许第二个跃点委托凭据。 在此之后,没有出现引用任何路径的错误。