使用PowerShell 7远程管控SQLBrowser服务所需权限咨询
非本地管理员账户远程管理SQLBrowser服务的权限配置方案
当应用池账户domain.local\service-mgr-svc失去远程SQL服务器本地管理员权限后,可尝试以下配置恢复SQLBrowser服务的远程启停/重启能力:
直接配置SQLBrowser服务的专属权限
无需依赖本地管理员权限,直接给目标账户分配服务的启停权限:- 打开远程SQL服务器的服务管理器,找到SQL Browser服务,右键选择「属性」→「安全」→「高级」
- 添加
domain.local\service-mgr-svc账户,勾选「启动服务」「停止服务」「暂停/继续服务」权限并保存
或者用命令行快速配置(替换SID为目标账户的安全标识符):
sc.exe sdset SQLBrowser "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;RPWP;;;S-1-5-21-xxxxxx-xxxxxx-xxxxxx-xxxxxx)"其中
RPWP权限对应服务的启动、停止操作。调整WinRM会话配置权限
确保目标账户能通过WinRM执行远程命令:
在远程SQL服务器上运行PowerShell命令,打开权限配置界面:Set-PSSessionConfiguration -Name Microsoft.PowerShell -ShowSecurityDescriptorUI在弹出的窗口中添加
domain.local\service-mgr-svc,勾选「执行(Invoke)」权限后确认。补充WMI root\CIMV2命名空间权限
SQLBrowser服务的WMI数据存放在root\CIMV2命名空间,仅配置根命名空间不够:- 在远程服务器打开
wmimgmt.msc,右键「WMI控制(本地)」→「属性」→「安全」 - 定位到
root\CIMV2,添加目标账户,勾选「读取属性」「读取安全」「执行方法」「远程启用」权限
- 在远程服务器打开
允许账户远程登录服务器
通过本地安全策略或GPO给账户分配远程登录权限:
打开secpol.msc→「本地策略」→「用户权限分配」→「允许通过远程桌面服务登录」,添加domain.local\service-mgr-svc账户换用CIM方法调用服务
替换原有的Restart-Service命令,用CIM实例调用的方式绕过权限限制:Invoke-Command -ComputerName sql-svr.domain.local -Scriptblock { $sqlBrowser = Get-CimInstance Win32_Service -Filter "Name='SQLBrowser'" $sqlBrowser | Invoke-CimMethod -Name RestartService }
内容的提问来源于stack exchange,提问作者Jack McCauley
相关产品推荐
相关产品推荐

