如何解决如何向此 PowerShell 脚本添加参数以停止指定的 SQL Server 服务?
使用 PowerShell 停止某些 SQL Server 服务时:
Get-Service -Name 'MSSQLSERVER' | Stop-Service -Force -Verbose
Get-Service -Name 'SQLSERVERAGENT' | Stop-Service -Force -Verbose
Get-Service -Name 'SQLBrowser' | Stop-Service -Force -Verbose
Get-Service -Name 'SQLTELEMETRY' | Stop-Service -Force -Verbose
Get-Service -Name 'SQLWriter' | Stop-Service -Force -Verbose
我意识到在这个特定的服务器上,我拥有一个命名实例
我如何找出实例名称并将其添加到我上面的脚本中?以便我可以停止此特定实例的相关服务?
基本上这行得通,但我如何使其自动化?
Get-Service -Name 'MSSQL$CELCAT' | Stop-Service -Force -Verbose
Get-Service -Name 'SQLAgent$CELCAT' | Stop-Service -Force -Verbose
Get-Service -Name 'SQLBrowser' | Stop-Service -Force -Verbose
Get-Service -Name 'SQLTELEMETRY$CELCAT' | Stop-Service -Force -Verbose
Get-Service -Name 'SQLWriter' | Stop-Service -Force -Verbose
解决方法
有几个选项。一种是查询实例名称并基于这些名称构建停止命令。这有点棘手,因为默认实例名称的处理方式与其他方式不同。即服务名是MSSQLSERVER,但实例名是默认的。
要获取实例列表,请像这样查询 SQLSERVER:
提供程序,
Import-Module -Name sqlpssqlps
$inames = Get-ChildItem -Path "SQLSERVER:\SQL\$env:computername" | select instancename
foreach($instance in $inames) { get-service -name $instance | stop-service }
另一种方法是简单地列出带有通配符的服务,
# Match MsSqlServer and MsSql<instance>
Get-Service -Name MSSQL* | % {stop-serivce $_ -force}
# Match SqlServerAgent and SqlAgent<instance>
Get-Service -Name SQL*Agent* | % {stop-serivce $_ -force}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。