我设法在带有脚本的干净机器上安装SQL服务器。
但有时脚本无法正常工作,因为机器需要重启。
我问:
1.安装SQLserver时是否有任何方法可以检测是否需要重启 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所在的地址,第二个是跳过重启检查的参数