Cara memeriksa Pending Reboot di komputer Windows

Cara Memeriksa Pending Reboot Di Komputer Windows



Biasanya, setelah pengguna menginstal driver, pembaruan (perangkat lunak atau sistem), atau perangkat lunak, atau membuat beberapa perubahan konfigurasi pada klien Windows atau mesin server, pengguna akan diminta untuk mem-boot ulang sistem. Dalam posting ini, kami akan memandu Anda melalui langkah-langkah tentang caranya periksa Pending Reboot di komputer Windows .



vmware workstation 12 jaringan yang dijembatani tidak berfungsi

  Cara memeriksa Pending Reboot di komputer Windows





Cara memeriksa Pending Reboot di komputer Windows

Setelah menyelesaikan banyak tugas OS Windows, terkadang komputer terpaksa memerlukan reboot. Saat masuk dan dalam sesi aktif, Anda akan diberi tahu bahwa reboot sedang menunggu atau diperlukan oleh beberapa kotak sembulan atau pemberitahuan — yang dapat Anda abaikan atau terima untuk memulai ulang Windows. Namun, dalam beberapa situasi di mana Anda tidak ingin atau tidak dapat segera mem-boot ulang mesin — misalnya, Anda memiliki beberapa pekerjaan yang belum selesai yang harus Anda selesaikan sebelum memulai ulang, atau Anda baru saja menginstal pembaruan di server produksi dan server tersebut dapat jangan langsung reboot.





Dalam skenario seperti ini, terutama yang menyangkut yang terakhir, Anda mungkin lupa tentang boot ulang dan di lain waktu menyadari bahwa beberapa server atau mesin klien perlu di-boot ulang tetapi Anda sekarang tidak dapat mengidentifikasi mesin yang mana — dalam situasi ini, Anda dapat memeriksa Pending Reboot di komputer Windows menggunakan a PowerShell naskah.



Sekarang, ketika reboot tertunda, Windows akan menambahkan beberapa nilai atau tanda registri untuk menunjukkannya di lokasi registri berikut dengan nilai dan ketentuan terkait seperti yang ditunjukkan pada tabel di bawah ini.

Kunci Nilai Kondisi
HKLM:\SOFTWARE\Microsoft\Pembaruan PerbaruiExeVolatile Nilai adalah apa pun selain 0
HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager PendingFileRenameOperations nilai ada
HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager PendingFileRenameOperations2 nilai ada
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired ITU kunci ada
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Services\Pending ITU Ada subkunci GUID apa pun
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\PostRebootReporting ITU kunci ada
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce DVDRebootSignal nilai ada
HKLM:\Software\Microsoft\Windows\CurrentVersion\Layanan Berbasis Komponen\RebootPending ITU kunci ada
HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootInProgress ITU kunci ada
HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\PackagesPending ITU kunci ada
HKLM:\SOFTWARE\Microsoft\ServerManager\CurrentRebootAttempts ITU kunci ada
HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon JoinDomain nilai ada
HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon HindariSpnSet nilai ada
HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName Nama komputer Nilai ComputerName di HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName berbeda

Karena kami telah mengidentifikasi jalur registri yang relevan, alih-alih menyisir registri secara manual karena Anda mungkin lupa untuk memeriksa satu jalur registri atau lupa mana yang harus diperiksa, Anda dapat buat dan jalankan skrip Check-PendingReboot.ps1 menggunakan kode di bawah ini untuk mengotomatiskan tugas untuk memeriksa semua kunci registri pada tabel di atas.

  Buat dan jalankan skrip PowerShell



bfsvc.dll
[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
}
}
}

Anda dapat menyediakan server sebanyak yang Anda inginkan melalui Nama komputer parameter dalam skrip yang akan kembali BENAR atau PALSU beserta nama servernya. Anda dapat menjalankan skrip yang mirip dengan yang berikut dan pastikan Remoting PowerShell diatur dan tersedia di server Anda.

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

Membaca : Cara menjadwalkan skrip PowerShell di Penjadwal Tugas

Dengan menggunakan skrip PowerShell, Anda dapat menanyakan satu atau semua komputer di domain atau memberikan nama server secara manual untuk menentukan mesin yang menunggu booting ulang. Setelah diidentifikasi, Anda dapat segera mem-boot ulang mesin atau membuat daftar untuk mem-boot ulang nanti.

Sekarang baca : Cara Restart komputer Windows dari jarak jauh menggunakan PowerShell

kartu grafis apa yang saya miliki

Apa artinya reboot Windows tertunda?

Umumnya, permintaan booting ulang yang tertunda terjadi saat program atau penginstalan membuat perubahan pada file, kunci registri, layanan, atau pengaturan sistem operasi yang berpotensi meninggalkan sistem dalam keadaan sementara. Jika Anda mendapatkan Reboot tertunda telah terdeteksi pemberitahuan, itu hanya menunjukkan bahwa pembaruan tertunda pada mesin dan reboot harus dilakukan sebelum pembaruan tambahan apa pun dapat diinstal.

Membaca :

  • Cara Menonaktifkan atau Mengaktifkan Notifikasi Mulai Ulang Pembaruan
  • Pembaruan Windows Menunggu penginstalan atau pengunduhan, Inisialisasi, dll

Bagaimana cara memeriksa reboot yang tertunda di registri?

Anda dapat melakukannya dengan mencari Windows Registry Untuk RebootDiperlukan kunci. Pada tabel di atas dalam posting ini, kami telah mengidentifikasi lokasi registri yang relevan untuk kunci registri reboot yang tertunda. Jika Anda ingin menampilkan pemberitahuan saat PC Anda memerlukan restart untuk menyelesaikan penginstalan pembaruan Windows, klik Awal > Pengaturan > Pembaruan & keamanan > Pembaruan Windows > Opsi Lanjutan . Alihkan tombol ke aktif atau nonaktif untuk Tampilkan pemberitahuan saat PC Anda memerlukan restart untuk menyelesaikan pembaruan pilihan.

Baca juga : Ada perbaikan sistem yang tertunda yang membutuhkan reboot untuk menyelesaikannya .

Pesan Populer