Powershell 5.0使用凭据调用命令启动服务

Powershell 5.0使用凭据调用命令启动服务,powershell,service,credentials,invoke-command,Powershell,Service,Credentials,Invoke Command,服务器上的服务有问题。因此,我们决定编写一个PS脚本,让没有管理员权限的“普通”用户可以启动此服务。我已经在这个小剧本上练习了2天了。我是PS的新手(学徒),但我很高兴当我以管理员的身份运行它时,它能工作。但为什么不是作为一个用户呢 我已生成“安全”密码,如下所示: "P@ssword1" | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString | Out-File "C:\Temp\Password.txt

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

我已生成“安全”密码,如下所示:

"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:处于特定状态的密钥无效

我从没有读过这本书。。。cmd是需要的管理员权限。 Enable PSRemoting在特定服务器上处于活动状态

谢谢你的时间和参与


脏兮兮的石头,我的天啊,你把这一切都搞错了。这是一个使用JEA(刚好够管理员)执行的任务的示例。在目标服务器上创建受约束的委派会话,该会话配置有启动或重新启动该服务的功能,并在有权控制该服务的本地帐户下运行,然后授予非管理员用户使用该会话的权限。

Thx mjolinor获取此提示。我没听说过这个,但看起来很有趣。最终用户会怎么看??我是否正确地理解了这一点,即我还将制作一个脚本供他们运行,或者他们是否会启动/重新启动服务?问候您可以为他们制作一个脚本,使用invoke命令通过该会话调用远程计算机上的命令,或者他们可以使用Enter-PSSession在该计算机上打开远程命令提示符并以交互方式工作。您可以配置会话,以便他们只能访问您在会话配置中指定的命令或功能。非常感谢。我会和我的老板一起评估!