我正在使用Teamcity和Powershell来自动化少量构建。 Teamcity在帐户A下运行。很少有可执行文件需要在帐户B下运行。帐户B可以访问DB(windows auth集成安全访问),并且需要在安装时创建几个表。帐户B的密码保存在文本文件中。我对此几乎没有任何问题。
1)帐户B可以包含任何特殊字符。我正在读取XML文件(因为此文件可以保存在只有帐户A可以访问的位置)和新的PSCredential来进行PSRemoting。我正在使用像
这样的东西$secpasswd = ConvertTo-SecureString $passwordFromXMLFile -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ("username", $secpasswd)
$ PasswordFromXMLFile可以包含任何特殊字符。我该怎么处理这个?
2)当我尝试在帐户B的上下文中运行可执行文件(在我以某种方式使用此帐户进行转义和连接之后),我看到可执行文件在匿名帐户下运行,而不是在域名\ B帐户下运行。是否有一些设置需要确保它在帐户B下运行。
我的代码看起来像 - 这不是我刚刚提取一些相关部分的确切代码。
$secpasswd = ConvertTo-SecureString $passwordFromXMLFile -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ("B", $secpasswd)
$session = New-PSSession -ComputerName $serverName -Credential $mycreds
我看到会话连接正常。到电脑
$scriptblock = {
Start-Process $exeName $arguments - wait
}
invoke-command -session $session -scriptblock $scriptblock
思考? Start-Process运行但它在匿名权限而不是帐户B上执行。