Powershell 5.0 Invoke-Command 使用凭据启动服务

Powershell 5.0 Invoke-Command Start Service with Credential

服务器上的服务有问题。因此,我们决定编写一个 PS-脚本,使 "normal" 没有管理员权限的用户可以启动该服务。我已经在这个小脚本上练习了 2 天。我是 PS 的新手(学徒),但我很高兴当我 运行 作为管理员时它可以正常工作。但是为什么不作为用户呢?

我生成了 "Secure" 密码如下:

"P@ssword1" | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString | Out-File "C:\Temp\Password.txt"

我将 SecureString 粘贴到我的脚本中,如下所示:

 $User = "DOMAIN\USER"
    $PwHash = "01000000d08c9ddf0....."
    $MyCredential=New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, ($PWHash | ConvertTo-SecureString) 
    Invoke-Command -ComputerName "MyServer" -ScriptBlock {Get-Service -Name "MyService" | Set-Service -Status Running} -Credential ($MyCredential)

失败由 $MyCredential 行弹出: ConvertTo-SecureString:特定状态中的密钥无效。

我没有看到 ConvertTo...cmd 需要管理员权限。 启用-PS远程处理在特定服务器上处于活动状态。

感谢您的参与

Dirty.Stone

恕我直言,你完全错了。这是您将使用 JEA(Just Enough Admin)执行的任务类型的示例。在目标服务器上创建一个受限的、委托的会话,配置一个启动或重启该服务的函数,并在一个有权限控制该服务的本地帐户下运行,然后授予非管理员用户使用权限那个会话。