gpt4 book ai didi

powershell - Powershell Copy-Item远程计算机复制到错误的位置

转载 作者:行者123 更新时间:2023-12-02 23:13:26 25 4
gpt4 key购买 nike

我在服务器A(开发箱)上,创建到服务器B(IIS服务器)的远程Powershell session 。该脚本从服务器C(构建计算机)复制到服务器B。

我已通过(我认为)多跃点凭证问题,但副本已复制到服务器B的错误位置。

它应该复制到d:\ wwwroot \ HelloWorld,但复制到c:\ users \ me \ Documents \ HelloWorld。

所有服务器都是Win2012r2,并且在使用Powershell v3的域中。

在服务器B上运行:

winrm set winrm/config/service/auth '@{CredSSP="true"}'

在服务器A上运行:
winrm set winrm/config/client/auth '@{CredSSP="true"}'

这是我的脚本:
$password = ConvertTo-SecureString "mypassword" -AsPlainText -Force
$cred= New-Object System.Management.Automation.PSCredential ("mydomain\me", $password)
$sesh = new-pssession -computername "ServerB" -credential $cred -Authentication CredSSP

$sitePath = "D:\wwwroot\HelloWorld"
Invoke-Command -Session $sesh -ScriptBlock {
Copy-Item -path "\\ServerC\Builds\HelloWorld\HelloWorld.1\_PublishedWebsites\HelloWorld" -Destination $sitePath -Recurse -Force
}

为什么不听我的目的地?

最佳答案

阅读remote variable documentation。您的$Sitepath在本地定义,未在远程脚本块中定义。

因此,请使用引入局部变量的语法:

$sitePath = "D:\wwwroot\HelloWorld"
Invoke-Command -Session $sesh -ScriptBlock {
Copy-Item -path "\\ServerC\Builds\HelloWorld\HelloWorld.1\_PublishedWebsites\HelloWorld"
-destination $Using:sitePath -Recurse -Force
}

或在脚本块中定义它:
Invoke-Command -Session $sesh -ScriptBlock { 
$sitePath = "D:\wwwroot\HelloWorld"
Copy-Item -path "\\ServerC\Builds\HelloWorld\HelloWorld.1\_PublishedWebsites\HelloWorld" -Destination $sitePath -Recurse -Force
}

关于powershell - Powershell Copy-Item远程计算机复制到错误的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28705763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com