Kako provjeriti ponovno pokretanje na čekanju na Windows računalu

Kako Provjeriti Ponovno Pokretanje Na Cekanju Na Windows Racunalu



Obično, nakon što korisnik instalira upravljački program, ažuriranje (softvera ili sustava) ili softver, ili napravi neke promjene konfiguracije na Windows klijentskom ili poslužiteljskom računalu, od korisnika će biti zatraženo da ponovno pokrene sustav. U ovom postu ćemo vas provesti kroz korake kako provjerite Pending Reboot na Windows računalu .



  Kako provjeriti ponovno pokretanje na čekanju na Windows računalu





Kako provjeriti ponovno pokretanje na čekanju na Windows računalu

Po dovršetku mnogih zadataka OS-a Windows, ponekad se računalo mora ponovno pokrenuti. Dok ste prijavljeni iu aktivnoj sesiji, bit ćete obaviješteni da je ponovno pokretanje na čekanju ili da je potrebno putem nekog skočnog okvira ili obavijesti — koju možete ili odbaciti ili prihvatiti da ponovno pokrenete Windows. No, u nekim situacijama u kojima ne želite ili ne možete odmah ponovno pokrenuti stroj — na primjer, imate neki nedovršeni posao koji trebate dovršiti prije ponovnog pokretanja ili ste upravo instalirali ažuriranja na produkcijski poslužitelj i taj poslužitelj može nemojte se odmah ponovno pokrenuti.





U ovakvim scenarijima, posebno kada se radi o potonjem, možete zaboraviti na ponovno pokretanje i kasnije shvatiti da se neki poslužitelji ili klijentski strojevi moraju ponovno pokrenuti, ali sada ne možete identificirati koji od strojeva — u ovoj situaciji, možete provjeriti Pending Reboot na Windows računalu pomoću a PowerShell skripta.



webp u gif pretvarač

Sada, kada je ponovno pokretanje na čekanju, Windows će dodati neke vrijednosti registra ili zastavice da to naznače na sljedećoj lokaciji registra s pridruženim vrijednostima i uvjetima kao što je prikazano u donjoj tablici.

Ključ Vrijednost Stanje
HKLM:\SOFTVER\Microsoft\Ažuriranja UpdateExeVolatile Vrijednost je bilo što drugo osim 0
HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager PendingFileRenameOperations vrijednost postoji
HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager Operacije preimenovanja datoteke na čekanju2 vrijednost postoji
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired DA ključ postoji
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Services\Pending DA Postoje svi GUID podključevi
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\PostRebootReporting DA ključ postoji
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce DVDRebootSignal vrijednost postoji
HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending DA ključ postoji
HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootInProgress DA ključ postoji
HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\PackagesPending DA ključ postoji
HKLM:\SOFTWARE\Microsoft\ServerManager\CurrentRebootAttempts DA ključ postoji
HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon Pridružite se domeni vrijednost postoji
HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon Izbjegavajte SpnSet vrijednost postoji
HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName Naziv računala Vrijednost ComputerName u HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName je drugačija

Kako smo identificirali relevantne staze registra, umjesto da ručno pročešljavate registar jer možete zaboraviti provjeriti jednu stazu registra ili samo zaboraviti koje provjeriti, možete stvoriti i pokrenuti skriptu Check-PendingReboot.ps1 pomoću donjeg koda za automatizaciju zadatka provjere svih ključeva registra u gornjoj tablici.

  Stvorite i pokrenite PowerShell skriptu



[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
}
}
}

Možete osigurati onoliko poslužitelja koliko želite putem Naziv računala parametar u skripti koji će se vratiti Pravi ili lažno zajedno s imenom poslužitelja. Možete izvršiti skriptu sličnu sljedećoj i uvjeriti se PowerShell Remoting je postavljen i dostupan na vašim poslužiteljima.

PS51> .\Test-PendingReboot.ps1 -Server SRV1,SRV2,SRV3,etc

Čitati : Kako zakazati skriptu PowerShell u Planeru zadataka

Korištenjem skripte PowerShell možete postaviti upit jednom ili svim računalima u domeni ili ručno dati imena poslužitelja kako biste odredili strojeve koji čekaju ponovno pokretanje. Nakon što ih identificirate, možete odmah ponovno pokrenuti strojeve ili napraviti popis za ponovno pokretanje kasnije.

Sad čitaj : Kako daljinski ponovno pokrenuti Windows računalo pomoću PowerShell-a

Što znači da čeka ponovno pokretanje sustava Windows?

Općenito, zahtjev za ponovnim pokretanjem na čekanju javlja se kada program ili instalacija napravi promjenu u datotekama, ključevima registra, uslugama ili postavkama operativnog sustava što potencijalno ostavlja sustav u prolaznom stanju. U slučaju da dobijete Otkriveno je ponovno pokretanje na čekanju obavijest, ona jednostavno označava da su ažuriranja na čekanju na računalu i da se mora izvršiti ponovno pokretanje prije nego što se mogu instalirati dodatna ažuriranja.

Čitati :

  • Kako onemogućiti ili omogućiti obavijest o ponovnom pokretanju ažuriranja
  • Windows Update Instalacija ili preuzimanje na čekanju, inicijalizacija, itd

Kako provjeriti ponovna pokretanja na čekanju u registru?

To možete učiniti tako da pretražujući Windows Registry za Potrebno ponovno pokretanje ključ. U gornjoj tablici u ovom postu identificirali smo relevantnu lokaciju registra za ključeve registra koji čekaju ponovno pokretanje. Ako želite prikazati obavijest kada vaše računalo zahtijeva ponovno pokretanje za dovršetak instalacije Windows ažuriranja, kliknite Početak > postavke > Ažuriranje i sigurnost > Windows ažuriranja > Napredne opcije . Uključite ili isključite gumb za Pokažite obavijest kada vaše računalo zahtijeva ponovno pokretanje za dovršetak ažuriranja opcija.

Također pročitajte : Na čekanju je popravak sustava koji zahtijeva ponovno pokretanje da bi se dovršio .

Popularni Postovi