gpt4 book ai didi

powershell - 符合PSCredential的Powershell invoke-command

转载 作者:行者123 更新时间:2023-12-03 00:38:57 24 4
gpt4 key购买 nike

我需要能够在另一台服务器上运行命令。该脚本充当在实际服务器上运行的另一个脚本的 bootstrap 。这在相同域的服务器上效果很好,但是如果我需要在远程服务器上运行此脚本,则需要指定凭据。

该命令从Msbuild目标文件开始,如下所示:

  <Target Name="PreDeployment" Condition="true" BeforeTargets="MSDeployPublish">

<Exec Command="powershell.exe -ExecutionPolicy Bypass invoke-command bootstrapScript.ps1 -computername $(MyServer) -argumentlist param1, param2" />

</Target>

但是,我需要能够通过使用安全密码创建一个新的PSCredentials对象来提供凭据,以使我的部署脚本可以在远程服务器上运行:
<Target Name="PreDeployment" Condition="true" BeforeTargets="MSDeployPublish">          
<Exec Command="powershell.exe -ExecutionPolicy Bypass invoke-command bootstrapScript.ps1 -computername $(MyServer) -credential New-Object System.Management.Automation.PSCredential ('admin', (convertto-securestring $(Password) -asplaintext -force)) -argumentlist param1, param2" />
</Target>

运行构建时,将弹出一个对话框,其用户名设置为System.Management.Automation.PSCredential。
我需要能够在可执行目标上在线创建凭据。我该怎么做?

最佳答案

尝试在PSCredential对象的实例化周围放置括号,例如:

... -credential (New-Object System.Management.Automation.PSCredential 'admin',(convertto-securestring $(Password) -asplaintext -force)) -argumentlist param1, param2" />

PowerShell解析倾向于将参数解释为文字字符串(或数字)。如果要评估表达式,通常将表达式放在括号内。这在PowerShell中称为分组表达式。

关于powershell - 符合PSCredential的Powershell invoke-command,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19522621/

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