我使用下面的脚本将文件从网络共享复制到本地驱动器 . 但是,我无法访问路径并获得Path not found错误 . 我的用例是我需要从Jenkins服务器执行此脚本并远程执行到server1,然后从共享目录(\ server2 \ QlikView)中复制文件,该目录已作为S:\ drive挂载到server1 . 我能够从powershell访问此共享路径如果我从server1.But运行命令,而不是在Invoke-Command脚本块中运行,如图所示 . 有什么想法吗?
$server = "server1"
$source_dir = "\\server2\QlikView"
$processing_dir = "M:\script_test\processing"
$processed_dir = ""
$user = 'Domain\user1'
$Password = '******'
$SecurePassword = $Password | ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList $User, $SecurePassword
Invoke-Command -ComputerName $server -Credential $cred -ScriptBlock {
param ($server,$source_dir,$processing_dir)
echo "$source_dir"
Test-path $source_dir
copy-item -Path $source_dir\* -Destination M:\script_test
} -ArgumentList $server,$source_dir,$processing_dir
1 回答
默认情况下,PowerShell远程处理不允许凭据委派或"second hop" . 如果要从远程会话连接到远程计算机(在本例中为网络共享),则需要允许将凭据委派给该计算机 . 要允许它,您需要配置CredSSP . 看看这里有关问题的详细信息以及如何设置:https://blogs.technet.microsoft.com/heyscriptingguy/2012/11/14/enable-powershell-second-hop-functionality-with-credssp/