Kā pārbaudīt gaidošo atsāknēšanu operētājsistēmā Windows

Ka Parbaudit Gaidoso Atsaknesanu Operetajsistema Windows



Parasti pēc tam, kad lietotājs instalē draiveri, atjauninājumu (programmatūras vai sistēmas) vai programmatūru vai veic dažas konfigurācijas izmaiņas Windows klienta vai servera datorā, lietotājam tiks piedāvāts restartēt sistēmu. Šajā rakstā mēs jums pastāstīsim, kā to izdarīt pārbaudiet, vai operētājsistēmas Windows datorā nav gaida atkārtotu palaišanu .



  Kā pārbaudīt gaidošo atsāknēšanu operētājsistēmā Windows





mainīt lejupielādes vietu, ti

Kā pārbaudīt gaidošo atsāknēšanu operētājsistēmā Windows

Pabeidzot daudzus Windows OS uzdevumus, dažreiz dators ir spiests pieprasīt atsāknēšanu. Kad esat pieteicies un esat aktīvā sesijā, jūs saņemsit paziņojumu, ka gaida atsāknēšanu vai to pieprasa kāds uznirstošais lodziņš vai paziņojums — kuru varat vai nu noraidīt, vai pieņemt, lai restartētu sistēmu Windows. Bet dažās situācijās, kad nevēlaties vai nevarat nekavējoties atsāknēt iekārtu, piemēram, jums ir kāds nepabeigts darbs, kas jāpabeidz pirms restartēšanas, vai arī esat tikko instalējis atjauninājumus ražošanas serverī un šis serveris var Netiek nekavējoties pārstartēts.





Šādos gadījumos, it īpaši, ja tas attiecas uz pēdējo, jūs varat aizmirst par atsāknēšanu un vēlāk saprast, ka daži serveri vai klientu mašīnas ir jāpārstartē, taču tagad nevarat noteikt, kura no mašīnām — šajā situācijā, jūs varat pārbaudīt, vai operētājsistēmas Windows datorā nav gaida atkārtotu palaišanu, izmantojot a PowerShell skripts.



Tagad, kad gaida atsāknēšanu, sistēma Windows pievienos dažas reģistra vērtības vai karodziņus, lai to norādītu tālāk norādītajā reģistra vietā ar saistītajām vērtībām un nosacījumiem, kā parādīts tālāk esošajā tabulā.

Atslēga Vērtība Stāvoklis
HKLM:\SOFTWARE\Microsoft\Updates UpdateExeVolatile Vērtība ir jebkas, kas nav 0
HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager PendingFileRenameOperations vērtība pastāv
HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager PendingFileRenameOperations2 vērtība pastāv
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired TAS atslēga pastāv
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Services\Pending TAS Pastāv jebkuras GUID apakšatslēgas
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\PostRebootReporting TAS atslēga pastāv
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce DVDRebootSignal vērtība pastāv
HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\Reboot Pending TAS atslēga pastāv
HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootInProgress TAS atslēga pastāv
HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages Pending TAS atslēga pastāv
HKLM:\SOFTWARE\Microsoft\ServerManager\CurrentRebootAttempts TAS atslēga pastāv
HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon JoinDomain vērtība pastāv
HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon Izvairieties noSpnSet vērtība pastāv
HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName Datora nosaukums Vērtība ComputerName mapē HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName ir atšķirīga

Tā kā esam noteikuši attiecīgos reģistra ceļus, tā vietā, lai manuāli ķemmētu reģistru, jo varat aizmirst pārbaudīt vienu reģistra ceļu vai vienkārši aizmirst, kurus pārbaudīt, varat izveidot un palaist Check-PendingReboot.ps1 skriptu, izmantojot tālāk norādīto kodu, lai automatizētu uzdevumu pārbaudīt visas reģistra atslēgas iepriekš tabulā.

  Izveidojiet un palaidiet 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
}
}
}

Varat nodrošināt tik daudz serveru, cik vēlaties, izmantojot Datora nosaukums parametrs skriptā, kas atgriezīsies Taisnība vai Nepatiesi kopā ar servera nosaukumu. Varat izpildīt skriptu, kas ir līdzīgs tālāk norādītajam, un pārliecināties PowerShell tālvadība ir iestatīts un pieejams jūsu serveros.

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

Lasīt : Kā ieplānot PowerShell skriptu uzdevumu plānotājā

Izmantojot PowerShell skriptu, varat vaicāt vienam vai visiem domēna datoriem vai manuāli norādīt serveru nosaukumus, lai noteiktu mašīnas, kas gaida atsāknēšanu. Pēc identificēšanas varat nekavējoties atsāknēt mašīnas vai izveidot sarakstu, lai atsāknētu vēlāk.

Tagad lasiet : Kā attāli restartēt Windows datoru, izmantojot PowerShell

Ko tas nozīmē, ka tiek gaidīta Windows atsāknēšana?

Parasti neapstiprināts atsāknēšanas pieprasījums rodas, kad programma vai instalācija veic izmaiņas failos, reģistra atslēgās, pakalpojumos vai operētājsistēmas iestatījumos, kas, iespējams, atstāj sistēmu pārejošā stāvoklī. Gadījumā, ja saņemat Tika konstatēta gaidoša atsāknēšana paziņojumu, tas vienkārši norāda, ka datorā tiek gaidīti atjauninājumi, un pirms jebkādu papildu atjauninājumu instalēšanas ir jāveic atsāknēšana.

Lasīt :

rādīt laiku uzdevumjoslas logos 10
  • Kā atspējot vai iespējot atjaunināšanas restartēšanas paziņojumu
  • Windows atjaunināšana gaida instalēšanu vai lejupielādi, inicializāciju utt

Kā pārbaudīt gaidošo atsāknēšanu reģistrā?

To var izdarīt, izmantojot meklējot Windows reģistrā priekš Reboot Required taustiņu. Iepriekš šajā ziņojumā esošajā tabulā esam noteikuši atbilstošo reģistra atrašanās vietu gaidošajām atsāknēšanas reģistra atslēgām. Ja vēlaties parādīt paziņojumu, kad dators ir jārestartē, lai pabeigtu Windows atjaunināšanas instalēšanu, noklikšķiniet uz Sākt > Iestatījumi > Atjaunināšana un drošība > Windows atjauninājumi > Pielāgota opcija . Ieslēdziet vai izslēdziet pogu Rādīt paziņojumu, kad dators ir jārestartē, lai pabeigtu atjaunināšanu opciju.

Izlasi arī : Tiek gaidīts sistēmas remonts, kura pabeigšanai nepieciešama atsāknēšana .

Populārākas Posts