我設法使用腳本在乾淨的機器上安裝SQL服務器。驗證SQLServer安裝是否需要重啓
但有時腳本無法運行,因爲機器需要重新啓動。
我問:
1.Is有什麼辦法,如果在安裝的SQLserver
需要 2.如果需要重新啓動重啓檢測,重新啓動它會自動
我設法使用腳本在乾淨的機器上安裝SQL服務器。驗證SQLServer安裝是否需要重啓
但有時腳本無法運行,因爲機器需要重新啓動。
我問:
1.Is有什麼辦法,如果在安裝的SQLserver
需要 2.如果需要重新啓動重啓檢測,重新啓動它會自動
總之,當重新啓動需要時,該值低於地方登錄註冊處..
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager
安裝之前,您可以運行以下PowerShell腳本..
#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
}
如果上述函數返回true,你可以在下面的命令運行..
Restart-Computer -ComputerName "Server01", "Server02", "localhost"
服務器*表示某些名稱服務器和本地主機代表本地計算機
參考文獻:
http://ilovepowershell.com/2015/09/10/how-to-check-if-a-server-needs-a-reboot/
太棒了!在安裝過程中檢測到重新啓動時,我正在考慮重新啓動。從來沒有想過在重啓之前重啓。這應該工作。非常感謝。 – AndyRaito
或者從命令行(cmd)安裝午餐所以
C:\Users\username\Downloads\SQLEXPR_x64_ENU.exe /SKIPRULES=RebootRequiredCheck /ACTION=Install
拳頭就是設置EXE位於跳過重啓支票的地址和第二參數
對不起,我的意思是MS SQL Server的 – AndyRaito
你的意思是說'你想自動SQL服務器通過cmd行安裝並尋找重啓的方法「 – TheGameiswar
是的。由於在我的腳本中,當需要重新啓動時,安裝總是失敗。如果在安裝驗證過程中需要重新啓動,我正在尋找可以重新啓動的方式。 – AndyRaito