用于在远程计算机上复制文件的PowerShell命令

Par*_*mar 10 powershell

我需要使用PowerShell将文件从本地计算机复制到远程计算机.我可以使用以下命令将文件复制到远程计算机:

copy-item -Path d:\Shared\test.txt -Destination \\server1\Shared
Run Code Online (Sandbox Code Playgroud)

以上命令使用网络共享路径来复制文件.我不想使用网络共享选项,因为该文件夹不会在远程计算机上共享.我尝试了以下命令,但没有工作.

copy-item -Path d:\Shared\test.txt -Destination \\server1\c$\Shared

Invoke-Command -ComputerName \\server -ScriptBlock {
  copy-item -Path D:\Shared\test.txt -Destination C:\Shared
}
Run Code Online (Sandbox Code Playgroud)

请告诉我如何在不使用UNC路径的情况下使其工作.我对远程计算机上的该文件夹拥有完全权限.

小智 7

我发现这一点的最快方式,因为正在使用的帐户是管理员,所以要执行以下操作:

New-PSDrive -Name X -PSProvider FileSystem -Root \\MyRemoteServer\c$\My\Folder\Somewhere\
cd X:\
cp ~\Desktop\MyFile.txt .\
## Important, need to exit out of X:\ for unmouting share
cd c:\
Remove-PSDrive X
Run Code Online (Sandbox Code Playgroud)

每次都有效.

  • 你可以考虑使用`Push-Location`和`Pop-Location`来改变X:\目录.这将在代码执行后使当前目录保持不变,从而使其更容易放置在函数或类似函数中. (2认同)

Ans*_*ers 4

您必须有一个共享文件夹才能将文件从一台主机复制到另一台主机,如果您想推送文件,则可以在远程主机上复制文件:

Copy-Item -Path D:\folder\test.txt -Destination \\server1\remoteshare\
Run Code Online (Sandbox Code Playgroud)

或者如果您想拉取文件,则在本地主机上:

Invoke-Command -ComputerName server1 -ScriptBlock {
  Copy-Item -Path \\localcomputer\localshare\test.txt -Destination C:\Shared\
}
Run Code Online (Sandbox Code Playgroud)

\\server1\c$仅当您的帐户对该特定计算机具有管理员权限时,才能使用管理共享 ( )。

  • @ParveenKumar server1 上的 Windows 防火墙是否允许 SMB 连接?你能“telnet”到 server1 上的端口 445 吗? (2认同)