创建远程Powershell会话时,“尝试对已标记为删除的注册表项进行非法操作”

时间:2019-09-25 16:13:47

标签: powershell jenkins powershell-remoting

我有一个Powershell脚本,该脚本在Jenkins节点上运行,并调用一些在单独服务器上执行的命令。它尝试注册Powershell会话配置并使用该配置创建新会话。如果失败,它将退回到正常的远程Powershell会话。 但是,我在看似随机的服务器上看到零星的故障。它将无法创建任何Powershell会话,并且整个脚本将失败。我缺少一些远程Powershell设置吗?

我尝试启用组策略“在用户注销时不要强行卸载用户注册表”,但是行为没有变化。执行策略设置为“ RemoteSigned”。

我正在调用以下命令来注册Powershell会话配置。

Register-PSSessionConfiguration -Name AdminSession -RunAsCredential $Credentials -Force -NoServiceRestart -WarningAction SilentlyContinue

然后我强制重新启动WinRM服务(可访问该配置是必需的)。

Invoke-Command -ComputerName $TargetServer -Credential $Credentials -ScriptBlock {Restart-Service -Name WinRM -Force} -ErrorAction SilentlyContinue | Out-Null

我尝试使用AdminSession配置创建一个新的powershell会话,如果失败,则尝试创建一个普通的powershell会话。

$TargetSession = New-PSSession -ComputerName $TargetServer -Credential $Credentials

错误输出如下:尝试对已标记为删除的注册表项进行非法操作。

1 个答案:

答案 0 :(得分:0)

我设法找到了问题。 Jenkins节点上的Windows用户不是管理员。更新要成为管理员的用户可以解决此问题。