Powershell 5.0使用Credential调用命令启动服务

时间:2016-03-10 14:34:09

标签: powershell service credentials invoke-command

我们在服务器上遇到服务问题。所以我们决定写一个PS脚本,没有管理员权限的“普通”用户可以启动此服务。我已经在这个小剧本上练习了2天。我是PS中的新手(Apprentice),但很高兴它在我作为管理员运行时起作用。但为什么不能作为用户?

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

"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是需要的管理员权限。 Enable-PSRemoting在特定服务器上处于活动状态。

感谢您的时间和参与

Dirty.Stone

1 个答案:

答案 0 :(得分:0)

恕我直言,你说这一切都错了。这是您将使用JEA(Just Enough Admin)的任务类型的示例。在目标服务器上创建受约束的委派会话,配置有启动或重新启动该服务的功能,并在具有控制服务权限的本地帐户下运行,然后授予非管理员用户使用该会话的权限。 / p>