需要远程计算机抓取本地文件

需要远程计算机抓取本地文件

所以我目前正在我们的 Staging 服务器上工作,它具有我确实拥有的管理员权限。因此,我尝试了 Invoke-Command cmdlet 和 Enter-PSSession cmdlet,尽管这些仍然可以提供帮助,但我的主要问题是我无法让我的远程服务器(staging 服务器)连接到我的本地计算机并获取一些文件。这就像我通常所做的相反的过程,即将文件从本地计算机推送到远程服务器,只是通常不是具有管理员权限的服务器。但由于我一直在使用 Invoke 和 Enter-PSSession,所以就像我在技术上使用 PowerShell 远程连接到该服务器一样,因此如果可能的话,我希望 Staging 服务器能够从我的本地计算机中获取文件。需要说明的是,我已经在此服务器上使用了另一个脚本,所以我确信这只是我目前缺乏经验。下面是我正在使用的脚本。

Enter-PSSession -ComputerName StagingServer -Credential AdminUser

### Location of starting directory ###
    $_SourcePath = "\\LocalMachine\C$\Deployment\Files" 

### Location where files will be copied to ###
    $_DestinationPath = "C:\Staging\DeployHere"

Get-ChildItem -recurse ($_SourcePath) | Copy-Item -Destination ($_DestinationPath) -PassThru 

还使用过:

# Set Up Credentials. PSCredentials is an object that stores your username and an encrypted version of your password.
$password = ConvertTo-SecureString -String $env:Password -AsPlainText -Force
$cred = New-Object System.Managment.Automation.PSCredential $env:Username,$password

Invoke-Command -ComputerName StagingServer -credential $cred -ScriptBlock {
   ### Location of starting directly ###
    $_SourcePath = "\\LocalMachine\C$\Deployment\Files" 

### Location where files will be copied to ###
    $_DestinationPath = "C:\Staging\DeployHere"

Copy-Item ($_SourcePath) -Destination ($_DestinationPath)
}

抱歉发了这么长的帖子。再说一遍,我可能只是漏掉了一个步骤,或者完全搞砸了。非常感谢您的帮助。

答案1

将远程文件从本地机器复制到本地机器的稍微简单一点的方法:

net use \\10.11.12.13\RemoteFolder /user:pc\user myPassword
robocopy \\10.11.12.13\RemoteFolder C:\LocalFolder /Copy /E /R:0 /W:0

标志:

/复制 - 复制

/E—复制子文件夹,包括空子文件夹。

更多旗帜在这里:https://ss64.com/nt/robocopy.html

R:0 - 失败复制的重试次数 - 默认值为 100 万次。W:0 - 重试之间的等待时间 - 默认值为 30 秒。

答案2

您可以创建 PSSession 并将其存储在变量中,而不必输入它。

$StagingSession = New-PSSession -ComputerName StagingServer -Credential AdminUser

然后,您可以使用Copy-Item参数-ToSession(或-FromSession)在本地计算机和该会话之间复制项目:

$SourcePath = "C:\Deployment\Files" 
$DestinationPath = "C:\Staging\DeployHere"

Copy-Item -Path "$SourcePath\*" -Destination $DestinationPath -Recurse -ToSession $_StagingSession

相关内容