Kuidas kontrollida Windowsi arvutis ootel taaskäivitamist

Kuidas Kontrollida Windowsi Arvutis Ootel Taaskaivitamist



Tavaliselt pärast seda, kui kasutaja installib draiveri, värskenduse (tarkvara või süsteemi) või tarkvara või teeb mõned konfiguratsioonimuudatused Windowsi kliendi- või serverimasinas, palutakse kasutajal süsteem taaskäivitada. Selles postituses tutvustame teile juhiseid, kuidas seda teha kontrollige Windowsi arvutis ootel taaskäivitamist .



Microsofti serva külmumine

  Kuidas kontrollida Windowsi arvutis ootel taaskäivitamist





Kuidas kontrollida, kas Windowsi arvutis on ootel taaskäivitus

Paljude Windows OS-i toimingute lõpetamisel on mõnikord arvuti sunnitud nõudma taaskäivitamist. Kui olete sisse logitud ja aktiivses seansis, saate teate, et taaskäivitamine on ootel või seda nõuab mõni hüpikaken või teatis – mille saate Windowsi taaskäivitamiseks kas loobuda või nõustuda. Kuid mõnes olukorras, kus te ei soovi või ei saa masinat kohe taaskäivitada – näiteks on teil mõni lõpetamata töö, mille peate enne taaskäivitamist lõpetama või olete just installinud värskendused tootmisserverisse ja see server saab ei taaskäivitage kohe.





Selliste stsenaariumide puhul, eriti kui see puudutab viimast, võite unustada taaskäivitamise ja hiljem mõista, et mõned serverid või kliendimasinad tuleb taaskäivitada, kuid te ei suuda nüüd tuvastada, milline neist masinatest – selles olukorras, saate kontrollida ootel taaskäivitamist Windowsi arvutis, kasutades a PowerShell stsenaarium.



Nüüd, kui taaskäivitamine on ootel, lisab Windows mõned registriväärtused või lipud, mis näitavad seda järgmises registri asukohas koos seotud väärtuste ja tingimustega, nagu on näidatud allolevas tabelis.

Võti Väärtus Seisund
HKLM:\SOFTWARE\Microsoft\Updates Värskenda ExeVolatile Väärtus on midagi muud kui 0
HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager Ootel FileRenameOperations väärtus on olemas
HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager Ootel FileRenameOperations2 väärtus on olemas
HKLM:\TARKVARA\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired SEE võti on olemas
HKLM:\TARKVARA\Microsoft\Windows\CurrentVersion\WindowsUpdate\Services\Pending SEE Kõik GUID-i alamvõtmed on olemas
HKLM:\TARKVARA\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\PostRebootReporting SEE võti on olemas
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce DVDRebootSignal väärtus on olemas
HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Service\Reboot Pending SEE võti on olemas
HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootInProgress SEE võti on olemas
HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Service\Packages Pending SEE võti on olemas
HKLM:\SOFTWARE\Microsoft\ServerManager\CurrentRebootAttempts SEE võti on olemas
HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon Liitu domeeniga väärtus on olemas
HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon AvoidSpnSet väärtus on olemas
HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName Arvutinimi Väärtus Arvutinimi jaotises HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName on erinev

Kuna oleme tuvastanud asjakohased registriteed, saate registri käsitsi läbi kammimise asemel unustada ühe registritee või lihtsalt unustada, milliseid kontrollida. luua ja käivitada skript Check-PendingReboot.ps1, mis kasutab allolevat koodi, et automatiseerida kõigi ülaltoodud tabelis olevate registrivõtmete kontrollimise ülesanne.

  Looge ja käivitage PowerShelli skript



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

Saate pakkuda nii palju servereid kui soovite kaudu Arvutinimi parameeter skriptis, mis tagastatakse Tõsi või Vale koos serveri nimega. Saate käivitada sarnase skripti ja veenduda PowerShelli kaugjuhtimine on seadistatud ja teie serverites saadaval.

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

Lugege : PowerShelli skripti ajastamine Task Scheduleris

PowerShelli skripti kasutades saate teha päringu ühest või kõigist domeeni arvutitest või sisestada käsitsi serverinimed, et määrata taaskäivitamist ootavad masinad. Pärast tuvastamist saate masinad kohe taaskäivitada või koostada loendi hilisemaks taaskäivitamiseks.

Nüüd loe : Kuidas kaugtaaskäivitada Windowsi arvuti PowerShelli abil

Mida see tähendab, et Windowsi taaskäivitamine on ootel?

Üldjuhul ilmneb ootel taaskäivitamise taotlus siis, kui programm või install muudab faile, registrivõtmeid, teenuseid või operatsioonisüsteemi sätteid, mis võivad süsteemi jätta ajutisse olekusse. Juhul kui saate Tuvastati ootel taaskäivitus teavitus, näitab see lihtsalt, et värskendused on masinas ootel ja enne täiendavate värskenduste installimist tuleb teha taaskäivitus.

Lugege :

  • Uuenduse taaskäivitamise teatise keelamine või lubamine
  • Windows Update Ootab installimist või allalaadimist, lähtestamist jne

Kuidas kontrollida registris ootel olevaid taaskäivitusi?

Saate seda teha otsides Windowsi registrist Selle eest RebootRequired võti. Selle postituse ülaltoodud tabelis oleme tuvastanud ootel taaskäivitamise registrivõtmete asjakohase registri asukoha. Kui soovite kuvada teatist, kui teie arvuti vajab Windowsi värskenduse installimise lõpuleviimiseks taaskäivitamist, klõpsake Alusta > Seaded > Värskendus ja turvalisus > Windowsi värskendused > Täpsemad valikud . Lülitage nupp sisse või välja Kuva märguanne, kui teie arvuti vajab värskendamise lõpetamiseks taaskäivitamist valik.

mobiiliplaanide aknad 10

Loe ka : Ootel on süsteemi remont, mille lõpuleviimiseks on vaja taaskäivitada .

Lemmik Postitused