Како проверити да ли је на чекању за поновно покретање на Виндовс рачунару

Kako Proveriti Da Li Je Na Cekanu Za Ponovno Pokretane Na Vindovs Racunaru



Обично, након што корисник инсталира драјвер, ажурирање (софтвер или систем) или софтвер, или изврши неке промене у конфигурацији на Виндовс клијент или сервер машини, од корисника ће бити затражено да поново покрене систем. У овом посту ћемо вас провести кроз кораке како да проверите чекање на поновно покретање на Виндовс рачунару .



  Како проверити да ли је на чекању за поновно покретање на Виндовс рачунару





Како проверити да ли је на чекању за поновно покретање на Виндовс рачунару

По завршетку многих задатака оперативног система Виндовс, понекад је рачунар приморан да захтева поновно покретање. Док сте пријављени и у активној сесији, бићете обавештени да је поновно покретање на чекању или да је потребно неким искачућим оквиром или обавештењем — које можете или одбацити или прихватити да бисте поново покренули Виндовс. Али, у неким ситуацијама у којима не желите или не можете одмах да поново покренете машину — на пример, имате неки недовршени посао који треба да завршите пре него што поново покренете, или сте управо инсталирали ажурирања на производном серверу и тај сервер може не треба одмах поново покренути.





У оваквим сценаријима, посебно што се тиче потоњег, можда ћете заборавити на поновно покретање и касније схватити да неки сервери или клијентске машине морају бити поново покренути, али сада не можете да идентификујете која од машина — у овој ситуацији, можете бити у могућности да проверите да ли на Виндовс рачунару чека поновно покретање помоћу а ПоверСхелл скрипта.



Сада, када је поновно покретање на чекању, Виндовс ће додати неке вредности регистратора или заставице како би то назначио на следећој локацији регистратора са припадајућим вредностима и условима као што је приказано у табели испод.

Кључ Валуе Стање
ХКЛМ:\СОФТВАРЕ\Мицрософт\Упдатес УпдатеЕкеВолатиле Вредност је било шта друго осим 0
ХКЛМ:\СИСТЕМ\ЦуррентЦонтролСет\Цонтрол\Сессион Манагер ПендингФилеРенамеОператионс вредност постоји
ХКЛМ:\СИСТЕМ\ЦуррентЦонтролСет\Цонтрол\Сессион Манагер ПендингФилеРенамеОператионс2 вредност постоји
ХКЛМ:\СОФТВАРЕ\Мицрософт\Виндовс\ЦуррентВерсион\ВиндовсУпдате\Ауто Упдате\РебоотРекуиред ТО кључ постоји
ХКЛМ:\СОФТВАРЕ\Мицрософт\Виндовс\ЦуррентВерсион\ВиндовсУпдате\Сервицес\На чекању ТО Постоје ГУИД поткључеви
ХКЛМ:\СОФТВАРЕ\Мицрософт\Виндовс\ЦуррентВерсион\ВиндовсУпдате\Ауто Упдате\ПостРебоотРепортинг ТО кључ постоји
ХКЛМ:\СОФТВАРЕ\Мицрософт\Виндовс\ЦуррентВерсион\РунОнце ДВДРебоотСигнал вредност постоји
ХКЛМ:\Софтваре\Мицрософт\Виндовс\ЦуррентВерсион\Сервисирање засновано на компонентама\РебоотПендинг ТО кључ постоји
ХКЛМ:\Софтваре\Мицрософт\Виндовс\ЦуррентВерсион\Цомпонент Басед Сервицинг\РебоотИнПрогресс ТО кључ постоји
ХКЛМ:\Софтваре\Мицрософт\Виндовс\ЦуррентВерсион\Цомпонент Басед Сервицинг\ПацкагесПендинг ТО кључ постоји
ХКЛМ:\СОФТВАРЕ\Мицрософт\СерверМанагер\ЦуррентРебоотАттемптс ТО кључ постоји
ХКЛМ:\СИСТЕМ\ЦуррентЦонтролСет\Сервицес\Нетлогон ЈоинДомаин вредност постоји
ХКЛМ:\СИСТЕМ\ЦуррентЦонтролСет\Сервицес\Нетлогон ИзбегавајтеСпнСет вредност постоји
ХКЛМ:\СИСТЕМ\ЦуррентЦонтролСет\Цонтрол\ЦомпутерНаме\АцтивеЦомпутерНаме ЦомпутерНаме Вредност ЦомпутерНаме у ХКЛМ:\СИСТЕМ\ЦуррентЦонтролСет\Цонтрол\ЦомпутерНаме\ЦомпутерНаме је другачија

Пошто смо идентификовали релевантне путање регистратора, уместо ручног прочешљавања регистратора јер можете заборавити да проверите једну путању регистратора или једноставно заборавите које да проверите, можете створити и покренути скрипту Цхецк-ПендингРебоот.пс1 која користи код испод да аутоматизује задатак да провери све кључеве регистратора у горњој табели.

  Креирајте и покрените ПоверСхелл скрипту



[CmdletBinding()]
param(
[Parameter(Mandatory)]
[ValidateNotNullOrEmpty()]
[string[]]$ComputerName,
[Parameter()]
[ValidateNotNullOrEmpty()]
[pscredential]$Credential
)
$ErrorActionPreference = 'Stop'
$scriptBlock = {
$VerbosePreference = $using:VerbosePreference
function Test-RegistryKey {
[OutputType('bool')]
[CmdletBinding()]
param
(
[Parameter(Mandatory)]
[ValidateNotNullOrEmpty()]
[string]$Key
)
$ErrorActionPreference = 'Stop'
if (Get-Item -Path $Key -ErrorAction Ignore) {
$true
}
}
function Test-RegistryValue {
[OutputType('bool')]
[CmdletBinding()]
param
(
[Parameter(Mandatory)]
[ValidateNotNullOrEmpty()]
[string]$Key,
[Parameter(Mandatory)]
[ValidateNotNullOrEmpty()]
[string]$Value
)
$ErrorActionPreference = 'Stop'
if (Get-ItemProperty -Path $Key -Name $Value -ErrorAction Ignore) {
$true
}
}
function Test-RegistryValueNotNull {
[OutputType('bool')]
[CmdletBinding()]
param
(
[Parameter(Mandatory)]
[ValidateNotNullOrEmpty()]
[string]$Key,
[Parameter(Mandatory)]
[ValidateNotNullOrEmpty()]
[string]$Value
)
$ErrorActionPreference = 'Stop'
if (($regVal = Get-ItemProperty -Path $Key -Name $Value -ErrorAction Ignore) -and $regVal.($Value)) {
$true
}
}
# Added "test-path" to each test that did not leverage a custom function from above since
# an exception is thrown when Get-ItemProperty or Get-ChildItem are passed a nonexistant key path
$tests = @(
{ Test-RegistryKey -Key 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending' }
{ Test-RegistryKey -Key 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootInProgress' }
{ Test-RegistryKey -Key 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired' }
{ Test-RegistryKey -Key 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\PackagesPending' }
{ Test-RegistryKey -Key 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\PostRebootReporting' }
{ Test-RegistryValueNotNull -Key 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager' -Value 'PendingFileRenameOperations' }
{ Test-RegistryValueNotNull -Key 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager' -Value 'PendingFileRenameOperations2' }
{ 
# Added test to check first if key exists, using "ErrorAction ignore" will incorrectly return $true
'HKLM:\SOFTWARE\Microsoft\Updates' | Where-Object { test-path $_ -PathType Container } | ForEach-Object { 
(Get-ItemProperty -Path $_ -Name 'UpdateExeVolatile' | Select-Object -ExpandProperty UpdateExeVolatile) -ne 0 
}
}
{ Test-RegistryValue -Key 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce' -Value 'DVDRebootSignal' }
{ Test-RegistryKey -Key 'HKLM:\SOFTWARE\Microsoft\ServerManager\CurrentRebootAttemps' }
{ Test-RegistryValue -Key 'HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon' -Value 'JoinDomain' }
{ Test-RegistryValue -Key 'HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon' -Value 'AvoidSpnSet' }
{
# Added test to check first if keys exists, if not each group will return $Null
# May need to evaluate what it means if one or both of these keys do not exist
( 'HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName' | Where-Object { test-path $_ } | %{ (Get-ItemProperty -Path $_ ).ComputerName } ) -ne 
( 'HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName' | Where-Object { Test-Path $_ } | %{ (Get-ItemProperty -Path $_ ).ComputerName } )
}
{
# Added test to check first if key exists
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Services\Pending' | Where-Object { 
(Test-Path $_) -and (Get-ChildItem -Path $_) } | ForEach-Object { $true }
}
)
foreach ($test in $tests) {
Write-Verbose "Running scriptblock: [$($test.ToString())]"
if (& $test) {
$true
break
}
}
}
foreach ($computer in $ComputerName) {
try {
$connParams = @{
'ComputerName' = $computer
}
if ($PSBoundParameters.ContainsKey('Credential')) {
$connParams.Credential = $Credential
}
$output = @{
ComputerName = $computer
IsPendingReboot = $false
}
$psRemotingSession = New-PSSession @connParams
if (-not ($output.IsPendingReboot = Invoke-Command -Session $psRemotingSession -ScriptBlock $scriptBlock)) {
$output.IsPendingReboot = $false
}
[pscustomobject]$output
} catch {
Write-Error -Message $_.Exception.Message
} finally {
if (Get-Variable -Name 'psRemotingSession' -ErrorAction Ignore) {
$psRemotingSession | Remove-PSSession
}
}
}

Можете да обезбедите онолико сервера колико желите преко ЦомпутерНаме параметар у скрипти који ће вратити Истина или Фалсе заједно са именом сервера. Можете извршити скрипту сличну следећој и уверити се ПоверСхелл Ремотинг је постављен и доступан на вашим серверима.

121А31Ф32907Е25ДЕ0607А6АФЕД029ФД018001ЕД

читати : Како заказати ПоверСхелл скрипту у Планеру задатака

увези оненоте у гоогле кееп

Користећи ПоверСхелл скрипту, можете поставити упит за један или све рачунаре у домену или ручно унети имена сервера да бисте одредили машине које чекају на поновно покретање. Када их идентификујете, можете одмах поново покренути машине или направити листу за касније поновно покретање.

Сада прочитајте : Како даљински поново покренути Виндовс рачунар користећи ПоверСхелл

Шта то значи да чека поновно покретање Виндовс-а?

Генерално, захтев за поновно покретање на чекању се јавља када програм или инсталација изврши промену датотека, кључева регистратора, услуга или поставки оперативног система што потенцијално оставља систем у пролазном стању. У случају да добијете Откривено је поновно покретање на чекању обавештење, то једноставно указује да су ажурирања на чекању на машини и да се мора извршити поновно покретање пре него што се могу инсталирати било какве додатне исправке.

читати :

  • Како онемогућити или омогућити обавештење о поновном покретању ажурирања
  • Виндовс Упдате Чека инсталацију или преузимање, иницијализација итд

Како проверити чекајућа поновно покретање у регистру?

Ово можете учинити тако што ћете претражујући Виндовс регистар за РебоотРекуиред кључ. У табели изнад у овом посту, идентификовали смо релевантну локацију регистратора за кључеве регистратора на чекању за поновно покретање. Ако желите да прикажете обавештење када ваш рачунар захтева рестартовање да бисте довршили инсталацију ажурирања за Виндовс, кликните Почетак > Подешавања > Ажурирање и безбедност > Виндовс Упдатес > Напредне опције . Укључите или искључите дугме за Прикажите обавештење када рачунар захтева поновно покретање да би се ажурирање завршило опција.

Такође прочитајте : На чекању је поправка система која захтева поновно покретање да би се завршила .

Популар Постс