0

我正在尝试通过 TFS vNext 构建定义中的 Inline 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

但它每次都在推广密码,我尝试手动输入密码,结果看起来不错。

我们如何在不提示密码或凭据的情况下实现此步骤

4

1 回答 1

2

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

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

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

可能有一种方法可以继承您当前的域凭据,但这超出了我的范围,并且快速的谷歌搜索没有任何结果。

编辑:对不起,我忘了发布整件事:

$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
于 2019-06-06T18:32:02.260 回答