Általában, miután a felhasználó telepít egy illesztőprogramot, egy frissítést (szoftvert vagy rendszert) vagy szoftvert, vagy néhány konfigurációs változtatást hajt végre egy Windows kliens- vagy kiszolgálógépen, a rendszer felkérést kap a rendszer újraindítására. Ebben a bejegyzésben végigvezetjük Önt a lépéseken ellenőrizze a Pending Reboot lehetőséget Windows számítógépen .
Hogyan lehet ellenőrizni a függőben lévő újraindítást Windows számítógépen
A Windows operációs rendszerrel kapcsolatos számos feladat elvégzése után a számítógép néha újraindítást igényel. Amikor be van jelentkezve és aktív munkamenetben van, értesítést kap arról, hogy újraindítás vár, vagy valamilyen előugró ablak vagy értesítés megköveteli – amelyet elvethet vagy elfogadhat a Windows újraindításához. Bizonyos helyzetekben azonban, amikor nem akarja vagy nem tudja azonnal újraindítani a gépet – például van néhány befejezetlen munkája, amelyet el kell végeznie az újraindítás előtt, vagy éppen frissítéseket telepített egy éles kiszolgálóra, és a kiszolgáló ne indítsák újra azonnal.
ingyenes betűtípus-kezelő
Az ehhez hasonló forgatókönyvekben, különösen, ha ez utóbbiról van szó, megfeledkezhet az újraindításról, és egy későbbi időpontban ráébredhet, hogy néhány szervert vagy kliensgépet újra kell indítani, de most nem tudja azonosítani, hogy melyik gép – ebben a helyzetben, ellenőrizheti a Függőben lévő újraindítást Windows számítógépen a következő használatával PowerShell forgatókönyv.
Most, amikor az újraindítás függőben van, a Windows hozzáad néhány beállításjegyzék-értéket vagy jelzőt ennek jelzésére a következő beállításjegyzék-helyen, a kapcsolódó értékekkel és feltételekkel, az alábbi táblázat szerint. Kulcs Érték Feltétel HKLM:\SOFTWARE\Microsoft\Updates UpdateExeVolatile Az érték bármi más, mint 0 HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager PendingFileRenameOperations érték létezik HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager PendingFileRenameOperations2 érték létezik HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired HOGY kulcs létezik HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Services\Pending HOGY Bármilyen GUID alkulcs létezik HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\PostRebootReporting HOGY kulcs létezik HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce DVDRebootSignal érték létezik HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Services\Reboot Pending HOGY kulcs létezik HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Services\RebootInProgress HOGY kulcs létezik HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Service\Packages Pending HOGY kulcs létezik HKLM:\SOFTWARE\Microsoft\ServerManager\CurrentRebootAttempts HOGY kulcs létezik HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon Csatlakozz Domainhez érték létezik HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon AvoidSpnSet érték létezik HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName Számítógép név A Számítógépnév érték a HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName fájlban eltérő
Mivel azonosítottuk a megfelelő rendszerleíró útvonalakat, ahelyett, hogy manuálisan átfésülnénk a rendszerleíró adatbázist, mert előfordulhat, hogy elfelejti ellenőrizni az egyik rendszerleíró adatbázis elérési útját, vagy egyszerűen elfelejti, hogy melyiket kell ellenőrizni, létrehozni és futtatni egy Check-PendingReboot.ps1 szkript, amely az alábbi kódot használja, hogy automatizálja a fenti táblázatban szereplő összes beállításkulcs ellenőrzését.
[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 } } }
Annyi szervert biztosíthat, amennyit csak akar a Számítógép név paramétert a szkriptben, amely visszatér Igaz vagy Hamis a szerver nevével együtt. A következőhöz hasonlóan futtathatja a szkriptet, és győződjön meg róla PowerShell távvezérlés be van állítva és elérhető a szerverein.
PS51> .\Test-PendingReboot.ps1 -Server SRV1,SRV2,SRV3,etc
Olvas : A PowerShell-szkript ütemezése a Feladatütemezőben
A PowerShell-parancsfájl használatával lekérdezhet egy vagy az összes számítógépet a tartományban, vagy manuálisan megadhatja a kiszolgálóneveket az újraindításra váró gépek meghatározásához. Az azonosítás után azonnal újraindíthatja a gépeket, vagy készíthet egy listát a későbbi újraindításhoz.
Most olvass : A Windows számítógép távoli újraindítása a PowerShell segítségével
védelme lejárt vírus
Mit jelent, hogy a Windows újraindítása függőben van?
Általában egy függőben lévő újraindítási kérelem akkor fordul elő, amikor egy program vagy telepítés olyan fájlokat, rendszerleíró kulcsokat, szolgáltatásokat vagy operációs rendszer beállításait módosít, amelyek miatt a rendszer átmeneti állapotba kerül. Abban az esetben, ha megkapja a A rendszer egy függőben lévő újraindítást észlelt értesítést, ez egyszerűen azt jelzi, hogy a frissítések függőben vannak a gépen, és minden további frissítés telepítése előtt újra kell indítani.
Olvas :
- A frissítési újraindítási értesítés letiltása vagy engedélyezése
- Windows Update telepítésre vagy letöltésre vár, inicializálás stb
Hogyan lehet ellenőrizni a függőben lévő újraindításokat a rendszerleíró adatbázisban?
Ezt úgy teheti meg keres a Windows rendszerleíró adatbázisában a RebootRequired kulcs. A bejegyzés fenti táblázatában azonosítottuk a függőben lévő újraindítási kulcsok megfelelő beállításjegyzéki helyét. Ha értesítést szeretne megjeleníteni, amikor a számítógép újraindítását igényli a Windows frissítés telepítésének befejezéséhez, kattintson a gombra Rajt > Beállítások > Frissítés és biztonság > Windows frissítések > Haladó beállítások . Kapcsolja be vagy ki a gombot a Értesítés megjelenítése, ha a számítógép újraindítását igényli a frissítés befejezéséhez választási lehetőség.
Olvassa el is : A rendszer javítása folyamatban van, amelynek befejezéséhez újraindítás szükséges .