TeamCity远程Powershell访问突然被拒绝

时间:2020-05-09 18:09:38

标签: powershell teamcity remote-access

免责声明:我不是DevOps家伙,所以请原谅任何无知。我正在学习这些东西,以加深我的理解。

我已在Windows Server 2019实例上启用了远程Powershell,以便在从构建服务器(也是Windows Server 2019)部署文件的过程中停止/启动计划的任务。

我以Adminstrator用户的身份在远程服务器上按照Administrator Powershell的以下步骤操作:
1.启用RSRemoting
2.删除现有的侦听器。
3.创建自签名证书并导出到crt文件。

$Cert = New-SelfSignedCertificate -CertstoreLocation Cert:\LocalMachine\My -DnsName "<subdomain.domain.com>"
  1. 创建侦听器。
  2. 创建防火墙规则以允许安全PSRemoting并禁用不安全的连接。
  3. 将证书复制到构建服务器。
  4. 在构建服务器上导入证书。

在构建服务器中,我已经在Powershell中使用以下命令测试了配置:

$username = 'Administrator'
$pass = ConvertTo-SecureString -string '<password here>' -AsPlainText -Force
$cred = New-Object -typename System.Management.Automation.PSCredential -argumentlist $username, $pass
Invoke-Command -ComputerName <subdomain.domain.com> -UseSSL -ScriptBlock {whoami} -Credential $cred

其中win-<some stuff>\administrator的响应很好。但是,当我在TeamCity构建步骤中执行远程Powersehll命令时,我会遇到一个非常难看的Connecting to remote server <subdomain.domain.com> failed with the following error message : Access is denied.

奇怪的是,这是两天前完成的工作,我有几个版本可以完成所有远程操作。从今天早上开始,它才停止工作-po!

如果我伪造凭据,则会收到错误的用户名/密码错误,因此肯定会到达服务器。

另一个有趣的发现是,如果我跑步

[bool](Test-WSMan)

在远程服务器上,我得到True返回,但是如果在构建服务器上用-ComputerName <subdomain.domain.com>运行相同的命令,我得到
WinRM cannot complete the operation. Verify that the specified computer name is valid, that the computer is accessible over the network, and that a firewall exception for the WinRM service is enabled and allows access from this computer. By default, the WinRM firewall exception for public profiles limits access to remote computers within the same local subnet.返回了。
远程主机和构建服务器均以默认的Administrator登录。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在进行了更多研究并提出了一些建议之后,建议我调整https://ar.indeed.com/TeamCity Build Agent服务。这些需要TeamCity ServerLog On As而不是User。我无法解释以前的设置如何工作。我遇到的Local System错误与上述远程Powershell配置无关。