我试图使用以下行:
Set-Service -Name 'MSSQL$SQLEXPRESS' -Status Stopped -PassThru -ComputerName '123.123.45.67'
...但收到此错误: Set-Service:无法停止服务' SQL Server(SQLEXPRESS)(MSSQL $ SQLEXPRESS)'因为它有依赖服务。
这必须远程完成,所以我不相信Net Stop或Stop-Service会起作用,因为我还没有看到它的远程命令。 我在呼叫和接收服务器上拥有管理员访问权限。
我检查了远程计算机,该服务的唯一依赖是: SQL Server代理(SQLEXPRESS),已禁用。
如何远程关闭SQL Server Express并让它关闭依赖关系,比如Stop-Service -Force命令?
答案 0 :(得分:0)
您可以将Stop-Service
包裹在Invoke-Command
块中。
Invoke-Command -Computername '123.123.45.67' -Scriptblock {Stop-Service -Name 'MSSQL$SQLEXPRESS'}
您可能已经知道了,但万一您不需要确保目标服务器位于您信任的主机列表中,如果您真的在生产中使用IP,最好使用DNS名称。
答案 1 :(得分:0)
发现了这个:
(get-service -ComputerName '123.123.45.67' -Name 'MSSQL$SQLEXPRESS').Stop()
答案 2 :(得分:0)
Get-Service
使用' System.ServiceProcess.ServiceController'可以在远程计算机上运行的类,可以通过管道传送到Stop-Service
。
要停止相关服务,您只需要枚举它们,然后再管道到Stop-Service
。
$Service = Get-Service -Name 'MSSQL$SQLEXPRESS' -ComputerName '123.123.45.67'
$Service.DependentServices | Stop-Service -Verbose -WhatIf
$Service | Stop-Service -Verbose -WhatIf
注意:删除两个-WhatIf
进行生产。
答案 3 :(得分:0)
您必须使用 -Force 参数直接在powershell中停止所有相关服务。
在Powershell中:
Get-Service -Name 'MSSQL$SQLEXPRESS' -ComputerName '123.123.45.67' |stop-service -force –PassThru
在cmd行中:
net stop MSSQL$SQLEXPRESS /yes
它也将停止所有相关服务。
希望它有所帮助。