2016-09-26 4 views
0

Ich habe es geschafft, SQL Server auf einer sauberen Maschine mit Skripts zu installieren.Überprüfen Sie, ob die SQLServer-Installation neu gestartet werden muss.

Manchmal funktionieren die Skripts jedoch nicht, weil der Computer neu gestartet werden muss.

Mein fragen:

es 1.Is jede mögliche Weise Neustart zu erkennen, ob während SQLserver Installation erforderlich ist
2.Falls Neustart benötigt wird, es startet automatisch neu

+0

Leider überspringen ich meine MS SQL Server – AndyRaito

+0

Sie damit sagen, 'Sie versuchen, SQL Server zu automatisieren Installation über die Befehlszeile und Suche nach einer Methode zum Neustart. – TheGameiswar

+0

Ja. Da in meinen Skripten die Installation immer fehlschlägt, während ein Neustart erforderlich ist. Ich suche nach einem Weg, der neu starten kann, wenn während der Installationsprüfung ein Neustart erforderlich ist. – AndyRaito

Antwort

0

Zusammengefasst Wenn ein Neustart benötigt wird, wird der Wert unterhalb von Orten in Registry angemeldet ..

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired 

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending 

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager 

Vor der Installation können Sie unter Powershell-Skript laufen ..

#Adapted from https://gist.github.com/altrive/5329377 
#Based on <http://gallery.technet.microsoft.com/scriptcenter/Get-PendingReboot-Query-bdb79542> 
function Test-PendingReboot 
{ 
if (Get-ChildItem "HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" -EA Ignore) { return $true } 
if (Get-Item "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" -EA Ignore) { return $true } 
if (Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" -Name PendingFileRenameOperations -EA Ignore) { return $true } 
try { 
    $util = [wmiclass]"\\.\root\ccm\clientsdk:CCM_ClientUtilities" 
    $status = $util.DetermineIfRebootPending() 
    if(($status -ne $null) -and $status.RebootPending){ 
    return $true 
    } 
}catch{} 

return $false 
} 

wenn die obige Funktion true zurückgibt, können Sie unter Befehl ausführen kann ..

Restart-Computer -ComputerName "Server01", "Server02", "localhost" 

Server * steht für einige Namen-Server und localhost steht für lokale Computer

Referenzen:
http://ilovepowershell.com/2015/09/10/how-to-check-if-a-server-needs-a-reboot/

+0

Großartig! Ich habe an einen Neustart gedacht, als ein Neustart während des Installationsvorgangs feststellt. Ich habe nie an einen Neustart gedacht. Das sollte funktionieren. Danke vielmals. – AndyRaito

0

Oder Mittagessen die Installation von der Befehlszeile (cmd) wie so

C:\Users\username\Downloads\SQLEXPR_x64_ENU.exe /SKIPRULES=RebootRequiredCheck /ACTION=Install

Faust ist die Adresse, wo die Setup-exe befindet und die zweite die Parameter Neustart Check

Verwandte Themen