如何使用Powershell将文件从本地工作空间复制到远程服务器(而不是网络共享路径)

时间:2019-06-06 17:47:27

标签: powershell tfs powershell-remoting tfs2018 vnext

我正在尝试通过TFS vNext构建定义中的“通过内嵌Powershell使用powershell命令”任务将文件从本地工作区复制到远程服务器(而不是网络共享路径)。 仅供参考,目标路径不是网络共享路径

我尝试了以下命令

$Session = New-PSSession -ComputerName "remote server name" -Credential "domain\username" 
Copy-Item "$(Build.SourcesDirectory)\Test.htm" -Destination "C:\inetpub\wwwroot\aspnet_client\" -ToSession $Session

但是每次都在提倡输入密码,我尝试手动输入密码,结果看起来不错。

我们如何在不提示输入密码或凭据的情况下完成此步骤

1 个答案:

答案 0 :(得分:1)

您确定它不在网络共享上吗? :)

Powershell仅将密码作为安全字符串。您可以使用$credential = Get-Credential渲染一个非常酷的框来为您存储这些凭据,或者如果您要以编程方式存储登录名(出于明显的安全原因不建议使用),请使用以下方法:

$passwd = ConvertTo-SecureString "<password>" -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential("<username>",$passwd)

也许有一种方法可以继承您当前的域凭据,但是这超出了我的范围,并且快速的Google搜索没有发现任何问题。

编辑:对不起,我忘了发布整个内容:

$passwd = ConvertTo-SecureString "<password>" -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential("<username>",$passwd)
$Session = New-PSSession -ComputerName "remote server name" -Credential $credential
Copy-Item "$(Build.SourcesDirectory)\Test.htm" -Destination "C:\inetpub\wwwroot\aspnet_client\" -ToSession $Session