Kaip patikrinti, ar „Windows“ kompiuteryje yra laukiamas perkrovimas

Kaip Patikrinti Ar Windows Kompiuteryje Yra Laukiamas Perkrovimas



Paprastai vartotojui įdiegus tvarkyklę, naujinimą (programinę įrangą ar sistemą) arba programinę įrangą arba atlikus tam tikrus konfigūracijos pakeitimus Windows kliento ar serverio įrenginyje, vartotojas bus paragintas iš naujo paleisti sistemą. Šiame įraše paaiškinsime, kaip tai padaryti patikrinkite, ar „Windows“ kompiuteryje yra laukiamas perkrovimas .



  Kaip patikrinti, ar „Windows“ kompiuteryje yra laukiamas perkrovimas





rasti archyvuotus el. laiškus perspektyvoje

Kaip patikrinti, ar „Windows“ kompiuteryje nėra paleidimo iš naujo

Atlikus daugelį „Windows“ OS užduočių, kartais kompiuteris yra priverstas paleisti iš naujo. Prisijungę ir aktyvios sesijos metu būsite įspėjami, kad laukiama perkrovimo arba reikalaujama iššokančiojo lango arba pranešimo, kurį galite atmesti arba sutikti, kad paleistumėte „Windows“ iš naujo. Tačiau kai kuriose situacijose, kai nenorite arba negalite iš karto paleisti įrenginio iš naujo – pavyzdžiui, turite nebaigtų darbų, kuriuos turite atlikti prieš paleisdami iš naujo, arba ką tik įdiegėte naujinimus gamybos serveryje ir tas serveris gali nebus iš karto paleistas iš naujo.





Tokiais atvejais, ypač kalbant apie pastarąjį, galite pamiršti perkrovimą ir vėliau suprasti, kad kai kuriuos serverius ar klientų kompiuterius reikia paleisti iš naujo, bet dabar negalite nustatyti, kuris iš mašinų – šioje situacijoje, galite patikrinti, ar „Windows“ kompiuteryje laukiamas perkrovimas, naudodami a PowerShell scenarijus.



Dabar, kai laukiama perkrovimo, „Windows“ pridės tam tikras registro reikšmes arba vėliavėles, kad tai nurodytų toliau nurodytoje registro vietoje su susijusiomis reikšmėmis ir sąlygomis, kaip parodyta toliau esančioje lentelėje.

Raktas Vertė Būklė
HKLM:\SOFTWARE\Microsoft\Updates UpdateExeVolatile Vertė yra bet kas kita, nei 0
HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager Laukiama „FileRenameOperations“. vertė egzistuoja
HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager Laukiama failo pervarymo operacijos2 vertė egzistuoja
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired TAI raktas egzistuoja
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Services\Pending TAI Yra bet kokių GUID dalinių raktų
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\PostRebootReporting TAI raktas egzistuoja
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce DVD RebootSignal vertė egzistuoja
HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\Reboot Pending TAI raktas egzistuoja
HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Service\RebootInProgress TAI raktas egzistuoja
HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Service\Packages Pending TAI raktas egzistuoja
HKLM:\SOFTWARE\Microsoft\ServerManager\CurrentRebootAttempts TAI raktas egzistuoja
HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon Prisijunkite prie domeno vertė egzistuoja
HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon AvoidSpnSet vertė egzistuoja
HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName Kompiuterio pavadinimas Vertė ComputerName HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName skiriasi

Kadangi nustatėme atitinkamus registro kelius, užuot rankiniu būdu šukavęs registrą, nes galite pamiršti patikrinti vieną registro kelią arba tiesiog pamiršti, kuriuos iš jų patikrinti, galite kurti ir paleisti Check-PendingReboot.ps1 scenarijus, naudojant toliau pateiktą kodą, siekiant automatizuoti užduotį patikrinti visus registro raktus aukščiau pateiktoje lentelėje.

langų skliautas

  Sukurkite ir paleiskite „PowerShell“ scenarijų



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

Galite pateikti tiek serverių, kiek norite, naudodami Kompiuterio pavadinimas parametras scenarijuje, kuris grįš Tiesa arba Netiesa kartu su serverio pavadinimu. Galite vykdyti scenarijų, panašų į toliau pateiktą, ir įsitikinti „PowerShell“ nuotolinis valdymas yra nustatytas ir pasiekiamas jūsų serveriuose.

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

Skaityti : Kaip suplanuoti „PowerShell“ scenarijų užduočių planuoklyje

Naudodami „PowerShell“ scenarijų galite pateikti užklausą viename ar visuose domeno kompiuteriuose arba rankiniu būdu pateikti serverių pavadinimus, kad nustatytumėte įrenginius, laukiančius perkrovimo. Nustačius, galite nedelsdami iš naujo paleisti mašinas arba sudaryti sąrašą, kad vėliau būtų paleista iš naujo.

Dabar skaitykite : Kaip nuotoliniu būdu iš naujo paleisti „Windows“ kompiuterį naudojant „PowerShell“.

Ką tai reiškia, kad laukiama „Windows“ perkrovimo?

Paprastai laukiama pakartotinio paleidimo užklausa įvyksta, kai programa arba diegimas pakeičia failus, registro raktus, paslaugas arba operacinės sistemos parametrus, dėl kurių sistema gali likti laikina. Tuo atveju, kai gausite Aptiktas laukiantis paleidimas iš naujo pranešimas, jis tiesiog nurodo, kad laukiami įrenginio naujinimai ir prieš įdiegiant papildomus naujinimus reikia atlikti paleidimą iš naujo.

Skaityti :

  • Kaip išjungti arba įjungti atnaujinimo iš naujo paleidimo pranešimą
  • „Windows“ naujinimas laukia įdiegimo arba atsisiuntimo, inicijavimo ir kt

Kaip patikrinti laukiančius perkrovimus registre?

Tai galite padaryti per ieškodami „Windows“ registro už RebootRequired Raktas. Aukščiau esančioje šio įrašo lentelėje nustatėme atitinkamą registro vietą laukiantiems perkrovimo registro raktams. Jei norite, kad būtų rodomas pranešimas, kai kompiuterį reikia paleisti iš naujo, kad būtų baigtas „Windows“ naujinimo diegimas, spustelėkite Pradėti > Nustatymai > Atnaujinimas ir sauga > Windows naujinimai > Išplėstiniai nustatymai . Įjunkite arba išjunkite mygtuką Rodyti pranešimą, kai kompiuterį reikia paleisti iš naujo, kad būtų baigtas naujinimas variantas.

Taip pat skaitykite : Laukiama sistemos taisymo, kurį norint užbaigti reikia paleisti iš naujo .

ps4 valdiklio langai 10
Populiarios Temos