繁体   English   中英

以非管理员身份远程重启服务?

[英]Restarting service remotely as non-admin?

我们托管(在 Server 2019 上)一些其他人知道的服务器应用程序,并通过 web 接口或客户端应用程序配置内部设置。 有时,应用程序的管理器需要停止或重新启动服务,因为它挂起或者他们进行了需要重新启动的设置更改。 我想给他们一个脚本,让他们自己做,而不是等我。 这些用户无法登录服务器。

作为工作站的系统管理员,这些类型的 PoSh 行可以工作:

invoke-command -ComputerName $server -ScriptBlock { stop-Service 'XYZservice' }   
Get-Service -ComputerName $Server -Name $Service | start-service

我已授予用户对服务的“启动/停止”权限,他们(而不是其他用户)可以通过以下方式获取服务的状态:

Get-Service -ComputerName $Server -Name $Service

但是,如果我的非特权用户尝试实际启动/停止服务,我们会得到:

invoke-command -ComputerName $server -ScriptBlock { stop-Service 'XYZservice' }   
[server.domain.edu] Connecting to remote server server.domain.edu failed with the following error   
message : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.

和:

Get-Service -ComputerName $Server -Name $Service | start-service   
start-service : Service 'XYZservice' cannot be started due to the following error: Cannot open XYZservice service on
computer 'server.domain.edu'.

同样地:

(Get-WmiObject Win32_Service -filter "name='XYZservice'" -ComputerName $Server).StopService()   
Get-WmiObject : Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

还有其他一些 PowerShell 技巧可以让它工作吗? 如果只允许查看状态,“开始/停止”权限有什么用?

谢谢。

@Lee_Dailey 指导我找到最优秀的解决方案。 遵循这些出色的说明以及此处提供的更多信息,我能够完全按照我的需要进行操作。

具体来说,我在.psrc文件中包含了这一行:

VisibleCmdlets = @{ Name = 'Start-Service'; Parameters = @{ Name = 'Name'; ValidateSet = 'XYZservice' }},
                 @{ Name = 'Restart-Service'; Parameters = @{ Name = 'Name'; ValidateSet = 'XYZservice' }},
                 @{ Name = 'Stop-Service'; Parameters = @{ Name = 'Name'; ValidateSet = 'XYZservice' }}

然后我的非特权用户可以这样做:

$sesh = new-pssession -ComputerName $Server -ConfigurationName $ConfigName
$cmdString = "restart-service $service"
$scriptBlock = [Scriptblock]::Create($cmdString)
invoke-command -session $sesh -ScriptBlock $scriptblock
remove-pssession $sesh

服务器上没有其他内容(相关的启动/停止命令除外)。

这种 JEA 能力应该得到更广泛的记录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM