Изменение учетной записи службы SQL Server с помощью Powershell - PullRequest
0 голосов
/ 16 сентября 2011

Я подготовил приведенный ниже скрипт для изменения учетной записи службы сервера sql.Но служба не останавливается и не запускается, когда я запускаю скрипт ниже.Любая умирает?Есть ли Beeter способ сделать это.Есть ли альтернатива для сна?Мы не знаем, сколько нужно сервиса, чтобы остановиться и начать.Есть ли способ заставить powershell ждать, пока сервис полностью не остановится / не запустится.

$Services = Get-WmiObject Win32_Service -ComputerName "." | Where { $_.name -eq 'MSSQLSERVER' }    
ForEach($Service in $Services)    
{             
$StopStatus = $Service.StopService()
Sleep 15
If ($StopStatus.ReturnValue -eq "0")
 {write-host "$Service -> Service Stopped Successfully"} 
$ChangeStatus = $Service.change($null,$null,$null,$null,$null,$null,$ServiceAccount,$Password,$null,$null,$null)
If ($ChangeStatus.ReturnValue -eq "0")
 {write-host "$Service -> Sucessfully Changed Service Account"}
$StartStatus = $Service.StartService()
Sleep 25
If ($ChangeStatus.ReturnValue -eq "0")
{write-host "$Service -> Service Started Successfully"}
}

1 Ответ

0 голосов
/ 16 сентября 2011

Вы можете увидеть, если служба остановлена ​​(или запущена) в цикле, а затем продолжить:

$sleepCounter = 1
While((Get-Service $serviceName).status -ne "Stopped" ){
        Write-Host "Waiting for service to stop. Attempt $sleepCounter of 20"
        sleep 1
        if($sleepCounter -eq 20) { break }
        $sleepCounter++
}

Кроме того, вы можете сделать следующее, чтобы получить услугу вместо использования where-object

$svc=gwmi win32_service -filter "name='$serviceName'"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...