Powershell 从位于不同域中的UNC路径复制项目

Powershell 从位于不同域中的UNC路径复制项目,powershell,Powershell,我的任务是在分散在多个域的服务器(200820122016)上安装软件(msi)。诀窍是将安装、配置文件从位于不同域中的UNC复制到本地的每台服务器。不同的PowerShell版本以不同的方式运行。 最初在服务器2016s上,我尝试了新建PSSession和-FromSession开关,以建立到具有UNC路径的服务器的连接,并复制如下: $creds = Get-Credential -Username "<domain_with_unc_share>\$($env:username

我的任务是在分散在多个域的服务器(200820122016)上安装软件(msi)。诀窍是将安装、配置文件从位于不同域中的UNC复制到本地的每台服务器。不同的PowerShell版本以不同的方式运行。 最初在服务器2016s上,我尝试了新建PSSession-FromSession开关,以建立到具有UNC路径的服务器的连接,并复制如下:

$creds = Get-Credential -Username "<domain_with_unc_share>\$($env:username)"
$unc_server_session = New-PSSession -ComputerName unc_server -Credential $creds
Copy-Item "d:\share\*.*" -Destination "c:\temp\" -FromSession $unc_server_session -Recurse
然后我尝试了以下方法:

$creds = Get-Credential -Username "<domain_with_unc_share>\$($env:username)"
New-PSDrive -Name Y -PSProvider filesystem -Root "\\unc_server\share" -Credential $creds
Copy-Item "Y:\*.*" -Destination "c:\temp\" -Recurse
我不知道如何安抚能量地狱之神,让它在PS3、4、5中发挥作用。
有什么建议吗?

您必须使用-Persist开关来指示您正在映射网络驱动器:

$creds = Get-Credential -Username "<domain_with_unc_share>\$($env:username)" 
New-PSDrive -Name Y -PSProvider filesystem -Root "\\unc_server\share" -Credential $creds -Persist
 Copy-Item "Y:\*.*" -Destination "c:\temp\" -Recurse
$creds=Get-Credential-Username“\$($env:Username)”
新PSDrive-名称Y-PSProvider文件系统-根“\\unc\U服务器\share”-凭证$creds-持久
复制项目“Y:\*.*”-目标“c:\temp\”-递归

谢谢Wasif,即使这是临时复制会话?使用-Persist开关,我现在得到错误:New PSDrive:指定的网络密码不正确。我必须再次检查我的凭据是否正确,因为如果我打开浏览器windows to browser以共享,我可以进行身份验证再次检查用户名和密码。我进行了三次检查。密码是正确的。我唯一能想到的是我的密码包含特殊字符,但这不应该是一个问题,因为我正在使用Get Credential收集密码。想法?在文件资源管理器中,您可以访问
\\unc\u server\share
?你试过使用IP地址而不是unc_服务器名吗。我绝对可以通过资源管理器访问共享。这是我没有得到的一点。我使用相同的凭据启动会话,适用于会话,不适用于新PSDrive。
$creds = Get-Credential -Username "<domain_with_unc_share>\$($env:username)"
New-PSDrive -Name Y -PSProvider filesystem -Root "\\unc_server\share" -Credential $creds
Copy-Item "Y:\*.*" -Destination "c:\temp\" -Recurse
New-PSDrive : The specified drive root "\\unc_server\share"
either does not exist, or it is not a folder.
At line:1 char:1
+ New-PSDrive -Name "Y" -PSProvider filesystem -Root "\\unc_server\share ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ReadError: (Y:PSDriveInfo) [New-PSDrive], IOException
    + FullyQualifiedErrorId : DriveRootError,Microsoft.PowerShell.Commands.NewPSDriveCommand
$creds = Get-Credential -Username "<domain_with_unc_share>\$($env:username)" 
New-PSDrive -Name Y -PSProvider filesystem -Root "\\unc_server\share" -Credential $creds -Persist
 Copy-Item "Y:\*.*" -Destination "c:\temp\" -Recurse