如何使用 powershell 将整个文件夹复制到某个 IP 地址?

How can I copy a whole folder to a certain IP adress with powershell?

我目前正在尝试实现一项功能(最好是在 powershell 中),该功能会定期(每小时)将某个文件夹从我的台式计算机复制到另一台计算机。

另一台计算机未在我的本地网络中列出,但我有 IP 以及具有必要用户名和密码的用户凭据。

到目前为止,我尝试使用 robocopy,但我似乎不太明白如何让它工作。

如果重要:我的台式计算机是 运行 Windows 10,而另一台计算机是 raspberry pi 运行 Raspbian。

是否有已经成功尝试的示例代码可用?

robocopy 不处理身份验证。如果您需要提供访问远程 (SMB) 共享的凭据,您需要先将其映射到驱动器盘符,然后才能将其与 robocopy 一起使用。这是假设你的 RasPi 是 运行 Samba。

net use X: \192.168.23.42\share /user:username password
robocopy C:\some\folder X:\ /s
net use X: /d

以上代码在 CMD 和 PowerShell 中运行。

您还可以通过 New-PSDrive 映射网络驱动器,但这需要更多代码:

$pw   = ConvertTo-SecureString -String 'password' -AsPlainText -Force
$cred = New-Object Management.Automation.PSCredential ('username', $pw)
New-PSDrive -Name X -PSProvider FileSystem -Root '\192.168.23.42\share' -Credential $cred -Persist | Out-Null
robocopy C:\some\folder X:\ /s
Remove-PSDrive -Name X

如果您的凭据不是用于 SMB 而是用于 SSH 访问,您可以使用 WinSCP .Net assembly.

如果您的树莓派启用了 ssh(通常是这种情况),您可以使用 WinScp。 WinScp 提供了一堆命令行选项和脚本检查 WinScp website。您可以创建自己的 WinScp 复制脚本并通过以下方式启动它:

winscp.com /script=script.txt

希望对您有所帮助。

enter link description here