使用PowerShell远程停止SQL Server Express

时间:2016-12-20 16:15:38

标签: powershell

我试图使用以下行:

 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命令?

4 个答案:

答案 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

它也将停止所有相关服务。

希望它有所帮助。