Hogyan lehet ellenőrizni a függőben lévő újraindítást Windows számítógépen

Hogyan Lehet Ellenorizni A Fuggoben Levo Ujrainditast Windows Szamitogepen



Á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





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.

  Hozzon létre és futtasson PowerShell-szkriptet



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

Népszerű Bejegyzések