Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何将参数添加到此PowerShell脚本以停止命名的SQL Server服务?_Sql Server_Powershell_Service_Parameters_Sql Agent - Fatal编程技术网

Sql server 如何将参数添加到此PowerShell脚本以停止命名的SQL Server服务?

Sql server 如何将参数添加到此PowerShell脚本以停止命名的SQL Server服务?,sql-server,powershell,service,parameters,sql-agent,Sql Server,Powershell,Service,Parameters,Sql Agent,使用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 'SQLTE

使用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

有几个选项。一种是查询实例名称并基于这些名称构建stop命令。这有点棘手,因为默认实例名的处理方式与其他实例名不同。即,服务名称为MSSQLSERVER,但实例名称为默认名称

要获取实例列表,请像这样查询
SQLSERVER:
provider

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}
#匹配MsSqlServer和MsSql
获取服务-Name MSSQL*|%{stop serivce$|-force}
#匹配SqlServerAgent和SqlServerAgent
获取服务-Name SQL*Agent*|%{stop serivce$|-force}

有几个选项。一种是查询实例名称并基于这些名称构建stop命令。这有点棘手,因为默认实例名的处理方式与其他实例名不同。即,服务名称为MSSQLSERVER,但实例名称为默认名称

要获取实例列表,请像这样查询
SQLSERVER:
provider

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}
#匹配MsSqlServer和MsSql
获取服务-Name MSSQL*|%{stop serivce$|-force}
#匹配SqlServerAgent和SqlServerAgent
获取服务-Name SQL*Agent*|%{stop serivce$|-force}