【问题标题】:Python - Robocopy with Get-CredentialPython - 带有 Get-Credential 的 Robocopy
【发布时间】:2019-12-13 22:03:40
【问题描述】:

有没有办法对 Get-Credential 进行 robocopy 和管道传输? 我正在尝试将文件复制到需要我的凭据的工作场所的窗口服务器

我看到了 subprocess 之类的东西并尝试过,但似乎无法调用 Get-Credential 来输入我的凭据。

powershell = "robocopy " + Migration_data_csv + " " + destination + "/S | Get-Credential"
ps = subprocess.Popen(powershell,shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)

当我尝试通过管道传递命令 Get-Credential 时,我最终得到了一个错误

b"'Get-Credential' 未被识别为内部或外部命令、\r\n可运行程序或批处理文件。\r\n"

如果没有,我有办法将文件复制到窗口服务器吗?我也尝试通过 ftplib 进行 FTP,但窗口服务器拒绝连接。

【问题讨论】:

    标签: powershell


    【解决方案1】:

    有没有办法对 Get-Credential 进行 robocopy 和管道传输?

    没有。这些命令并非旨在协同工作。 Robocopy.exe 依赖于启动它的进程已经拥有正确的权限。 Get-Credential 在这样的管道中也不起作用。

    我也尝试通过 ftplib 进行 FTP,但窗口服务器拒绝连接。

    正确。 FTP 不能在大多数系统、Windows 或其他系统上运行。这是一个已弃用的传输协议。

    默认情况下,Windows 也不运行 SSH 守护程序,因此 SFTP 不可用。

    如果没有,我有办法将文件复制到窗口服务器吗?

    您可以尝试mounting the remote sharestarting a process as the correct user 然后复制文件。

    不过,说实话,Microsoft 执行此操作的方法是确保运行该进程的用户帐户是已经有权访问远程共享和文件的用户帐户。然后映射驱动器并使用文件系统工具或使用 Python SMB/CIFS 库访问共享。或致电 RoboCopy。

    【讨论】:

      猜你喜欢
      • 2023-01-09
      • 2015-05-12
      • 1970-01-01
      • 2015-06-16
      • 2018-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-27
      相关资源
      最近更新 更多