来自远程计算机的 Powershell New-PSDrive

来自远程计算机的 Powershell New-PSDrive

我又来这里问一个问题了。

就像声明的那样这里我成功连接了两台服务器来复制大量文件。但复制根本不起作用。它返回大量有关目标服务器上已存在的文件和文件夹的错误。

我所做的就是创建一个 PSSession,如上面给出的链接所述。我可以使用 成功查看源服务器中的文件Invoke-Command -ScriptBlock { Get-ChildItem -Path "d:\" } -Session $source_server。然后,使用以下命令开始复制:

copy-item -path "d:\folder_on_source_server\*" -destination "d:\folder_on_destination_server" -FromSession $source_server -recurse -exclude "*dfsrprivate*",".dropbox.cache"

源文件夹和目标文件夹名称相同。事实上,两个服务器具有相同的文件夹结构。但是,如前所述,我收到了很多有关目标上已经存在的文件和文件夹的错误。我的意思是很多。只复制了新文件,没有复制更新的文件。我知道 -force 选项可以工作,但它会再次复制所有内容。

我现在的目标是复制所有新的从源更新文件,但 copy-item 没有这样的功能。所以,我尝试使用 robocopy。问题是我不知道如何告诉 robocopy 使用远程服务器文件夹作为源。我知道 robocopy 可以使用 UNC 路径,但我不知道如何解析远程 UNC 路径。类似于robocopy remote_source_folder local_destination_folder /mir设置排除项。

我尝试创建 PSDrive,但仅在源服务器上创建。本地 robocopy 看不到它:Invoke-Command -session $vms -ScriptBlock { New-PSDrive -name "S" -PSProvider "FileSystem" -Root "\remote_server_ip\d$" }。如果我删除 -session,驱动器会在某个我不知道的地方创建。

我还尝试了一些其他命令,例如 net use,在源上使用 get-childitem 创建了一个变量,以及其他命令,所有命令都有或没有invoke-command、有或没有-session,但都没有起作用。

那么,您能帮我获取这些文件吗?我认为这很简单,但我看不到。另外,如果您能告诉我一种无需输入用户名和密码即可启动 pssession 的方法,那就太好了。

谢谢建议!

相关内容