验证SQLServer安装是否需要重新启动

时间:2016-09-26 08:05:19

标签: sql-server scripting installation

我设法在带有脚本的干净机器上安装SQL服务器。

但有时脚本无法正常工作,因为机器需要重启。

我问:

1.安装SQLserver时是否有任何方法可以检测是否需要重启 2.如果需要重启,请自动重启

2 个答案:

答案 0 :(得分:0)

总之,当需要重新启动时,该值将记录在以下位置的注册表中。

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"

Server *代表一些名称服务器,localhost代表本地计算机

<强>参考文献:
http://ilovepowershell.com/2015/09/10/how-to-check-if-a-server-needs-a-reboot/

答案 1 :(得分:0)

或者从命令行(cmd)安装午餐,如此

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

第一个是setup exe所在的地址,第二个是跳过重启检查的参数