Πώς να ελέγξετε για εκκρεμή επανεκκίνηση σε υπολογιστή με Windows

Pos Na Elenxete Gia Ekkreme Epanekkinese Se Ypologiste Me Windows



Συνήθως, αφού ένας χρήστης εγκαταστήσει ένα πρόγραμμα οδήγησης, μια ενημέρωση (λογισμικό ή σύστημα) ή λογισμικό ή κάνει κάποιες αλλαγές στη διαμόρφωση ενός υπολογιστή-πελάτη ή διακομιστή Windows, θα ζητηθεί από τον χρήστη να επανεκκινήσει το σύστημα. Σε αυτήν την ανάρτηση, θα σας καθοδηγήσουμε στα βήματα για το πώς να το κάνετε ελέγξτε για Εκκρεμή επανεκκίνηση σε υπολογιστή με Windows .



  Πώς να ελέγξετε για εκκρεμή επανεκκίνηση σε υπολογιστή με Windows





Πώς να ελέγξετε για εκκρεμή επανεκκίνηση σε υπολογιστή με Windows

Με την ολοκλήρωση πολλών εργασιών του λειτουργικού συστήματος Windows, μερικές φορές ο υπολογιστής αναγκάζεται να κάνει επανεκκίνηση. Ενώ είστε συνδεδεμένοι και βρίσκεστε σε μια ενεργή περίοδο λειτουργίας, θα ειδοποιηθείτε ότι εκκρεμεί ή απαιτείται επανεκκίνηση από κάποιο αναδυόμενο παράθυρο ή ειδοποίηση — την οποία μπορείτε είτε να απορρίψετε είτε να αποδεχτείτε για επανεκκίνηση των Windows. Ωστόσο, σε ορισμένες περιπτώσεις όπου δεν θέλετε ή δεν μπορείτε να επανεκκινήσετε αμέσως το μηχάνημα — για παράδειγμα, έχετε κάποια ημιτελή εργασία που πρέπει να ολοκληρώσετε πριν την επανεκκίνηση ή μόλις έχετε εγκαταστήσει ενημερώσεις σε έναν διακομιστή παραγωγής και αυτός ο διακομιστής μπορεί Να μην γίνει αμέσως επανεκκίνηση.





Σε σενάρια όπως αυτό, ειδικά όσον αφορά το τελευταίο, μπορεί να ξεχάσετε την επανεκκίνηση και αργότερα να συνειδητοποιήσετε ότι ορισμένοι διακομιστές ή υπολογιστές-πελάτες πρέπει να επανεκκινηθούν, αλλά τώρα δεν μπορείτε να προσδιορίσετε ποιο από τα μηχανήματα — σε αυτήν την περίπτωση, μπορείτε να ελέγξετε για εκκρεμή επανεκκίνηση σε υπολογιστή με Windows χρησιμοποιώντας ένα PowerShell γραφή.



σφάλμα 301 hulu

Τώρα, όταν εκκρεμεί μια επανεκκίνηση, τα Windows θα προσθέσουν ορισμένες τιμές μητρώου ή σημαίες για να το υποδείξουν στην ακόλουθη θέση μητρώου με τις σχετικές τιμές και συνθήκες όπως φαίνεται στον παρακάτω πίνακα.

Κλειδί αξία Κατάσταση
HKLM:\SOFTWARE\Microsoft\Updates UpdateExeVolatile Η τιμή είναι οτιδήποτε άλλο εκτός από 0
HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager PendingFileRenameOperations η αξία υπάρχει
HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager PendingFileRenameOperations2 η αξία υπάρχει
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired ΟΤΙ κλειδί υπάρχει
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Services\Pending ΟΤΙ Υπάρχουν τυχόν δευτερεύοντα κλειδιά GUID
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\PostRebootReporting ΟΤΙ κλειδί υπάρχει
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce DVDRebootSignal η αξία υπάρχει
HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending ΟΤΙ κλειδί υπάρχει
HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootInProgress ΟΤΙ κλειδί υπάρχει
HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\PackagesSpending ΟΤΙ κλειδί υπάρχει
HKLM:\SOFTWARE\Microsoft\ServerManager\CurrentRebootAttempts ΟΤΙ κλειδί υπάρχει
HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon JoinDomain η αξία υπάρχει
HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon AvoidSpnSet η αξία υπάρχει
HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName Όνομα υπολογιστή Η τιμή ComputerName στο HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName είναι διαφορετική

Καθώς έχουμε προσδιορίσει τις σχετικές διαδρομές μητρώου, αντί να χτενίζετε με μη αυτόματο τρόπο το μητρώο, επειδή μπορεί να ξεχάσετε να ελέγξετε μία διαδρομή μητρώου ή απλώς να ξεχάσετε ποιες να ελέγξετε, μπορείτε δημιουργία και εκτέλεση μια δέσμη ενεργειών Check-PendingReboot.ps1 που χρησιμοποιεί τον παρακάτω κώδικα για να αυτοματοποιήσει την εργασία ελέγχου όλων των κλειδιών μητρώου στον παραπάνω πίνακα.

  Δημιουργήστε και εκτελέστε το σενάριο PowerShell



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

Μπορείτε να παρέχετε όσους διακομιστές θέλετε μέσω του Όνομα υπολογιστή παράμετρος στο σενάριο που θα επιστρέψει Αληθής ή Ψευδής μαζί με το όνομα διακομιστή. Μπορείτε να εκτελέσετε το σενάριο παρόμοιο με το παρακάτω και να βεβαιωθείτε PowerShell Remoting είναι ρυθμισμένο και διαθέσιμο στους διακομιστές σας.

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

Ανάγνωση : Πώς να προγραμματίσετε το σενάριο PowerShell στο Task Scheduler

η σύνδεση απορρίφθηκε επειδή ο χρήστης δεν έχει εξουσιοδότηση για απομακρυσμένη σύνδεση

Χρησιμοποιώντας τη δέσμη ενεργειών PowerShell, μπορείτε να υποβάλετε ερώτημα σε έναν ή σε όλους τους υπολογιστές στον τομέα ή να δώσετε με μη αυτόματο τρόπο τα ονόματα των διακομιστών για να προσδιορίσετε τα μηχανήματα που εκκρεμούν επανεκκίνηση. Μόλις εντοπιστεί, μπορείτε στη συνέχεια να επανεκκινήσετε τα μηχανήματα αμέσως ή να δημιουργήσετε μια λίστα για επανεκκίνηση αργότερα.

Τώρα διαβάστε : Πώς να κάνετε απομακρυσμένη επανεκκίνηση του υπολογιστή με Windows χρησιμοποιώντας το PowerShell

Τι σημαίνει ότι εκκρεμεί μια επανεκκίνηση των Windows;

Γενικά, ένα εκκρεμές αίτημα επανεκκίνησης προκύπτει όταν ένα πρόγραμμα ή εγκατάσταση κάνει μια αλλαγή σε αρχεία, κλειδιά μητρώου, υπηρεσίες ή ρυθμίσεις του λειτουργικού συστήματος που ενδέχεται να αφήνει το σύστημα σε μεταβατική κατάσταση. Στην περίπτωση που λάβετε το Εντοπίστηκε εκκρεμής επανεκκίνηση ειδοποίηση, απλώς υποδεικνύει ότι εκκρεμούν ενημερώσεις στο μηχάνημα και ότι πρέπει να γίνει επανεκκίνηση προτού εγκατασταθούν πρόσθετες ενημερώσεις.

Ανάγνωση :

  • Πώς να απενεργοποιήσετε ή να ενεργοποιήσετε την ειδοποίηση επανεκκίνησης της ενημέρωσης
  • Windows Update Εκκρεμεί εγκατάσταση ή λήψη, προετοιμασία κ.λπ

Πώς να ελέγξετε τις εκκρεμείς επανεκκινήσεις στο μητρώο;

Μπορείτε να το κάνετε αυτό με αναζήτηση στο μητρώο των Windows για το Απαιτείται επανεκκίνηση κλειδί. Στον παραπάνω πίνακα αυτής της ανάρτησης, προσδιορίσαμε τη σχετική θέση μητρώου για τα κλειδιά μητρώου επανεκκίνησης σε εκκρεμότητα. Εάν θέλετε να εμφανίζεται μια ειδοποίηση όταν ο υπολογιστής σας απαιτεί επανεκκίνηση για να ολοκληρωθεί η εγκατάσταση της ενημέρωσης των Windows, κάντε κλικ Αρχή > Ρυθμίσεις > Ενημέρωση & ασφάλεια > Ενημερώσεις των Windows > Προχωρημένες επιλογές . Ενεργοποιήστε ή απενεργοποιήστε το κουμπί για το Εμφάνιση ειδοποίησης όταν ο υπολογιστής σας απαιτεί επανεκκίνηση για να ολοκληρωθεί η ενημέρωση επιλογή.

Διαβάστε επίσης : Εκκρεμεί μια επισκευή συστήματος που απαιτεί επανεκκίνηση για να ολοκληρωθεί .

Δημοφιλείς Αναρτήσεις