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 .
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ā.
[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 .