উইন্ডোজ কম্পিউটারে মুলতুবি রিবুটের জন্য কীভাবে পরীক্ষা করবেন

U Indoja Kampi Utare Mulatubi Ributera Jan Ya Kibhabe Pariksa Karabena



সাধারণত, ব্যবহারকারী একটি ড্রাইভার, একটি আপডেট (সফ্টওয়্যার বা সিস্টেম) , বা সফ্টওয়্যার ইনস্টল করার পরে, বা উইন্ডোজ ক্লায়েন্ট বা সার্ভার মেশিনে কিছু কনফিগারেশন পরিবর্তন করার পরে, ব্যবহারকারীকে সিস্টেমটি পুনরায় বুট করার জন্য অনুরোধ করা হবে। এই পোস্টে, আমরা আপনাকে কীভাবে করতে হবে তার পদক্ষেপগুলি নিয়ে চলে যাব একটি উইন্ডোজ কম্পিউটারে মুলতুবি রিবুট জন্য চেক করুন .



  উইন্ডোজ কম্পিউটারে মুলতুবি রিবুটের জন্য কীভাবে পরীক্ষা করবেন





কিভাবে একটি উইন্ডোজ কম্পিউটারে মুলতুবি রিবুট চেক করতে হয়

অনেক Windows OS কাজ সমাপ্ত করার পরে, কখনও কখনও কম্পিউটারকে রিবুট করতে বাধ্য করা হয়। লগ ইন থাকা অবস্থায় এবং একটি সক্রিয় অধিবেশনে থাকাকালীন, আপনাকে জানানো হবে যে একটি রিবুট মুলতুবি আছে বা কিছু পপআপ বক্স বা বিজ্ঞপ্তির দ্বারা প্রয়োজন - যা আপনি হয় খারিজ করতে পারেন বা Windows পুনরায় চালু করতে গ্রহণ করতে পারেন৷ কিন্তু, কিছু পরিস্থিতিতে যেখানে আপনি চান না বা অবিলম্বে মেশিনটি রিবুট করতে পারবেন না — উদাহরণস্বরূপ, আপনার কিছু অসমাপ্ত কাজ আছে যা আপনাকে পুনরায় চালু করার আগে সম্পূর্ণ করতে হবে, অথবা আপনি একটি প্রোডাকশন সার্ভারে আপডেটগুলি ইনস্টল করেছেন এবং সেই সার্ভারটি করতে পারে এখনই রিবুট করা যাবে না।





এই ধরনের পরিস্থিতিতে, বিশেষ করে এটি পরবর্তীটির ক্ষেত্রে, আপনি রিবুট সম্পর্কে ভুলে যেতে পারেন এবং পরে বুঝতে পারেন যে কিছু সার্ভার বা ক্লায়েন্ট মেশিন রিবুট করা দরকার কিন্তু আপনি এখন কোন মেশিনগুলি সনাক্ত করতে অক্ষম — এই পরিস্থিতিতে, আপনি একটি ব্যবহার করে উইন্ডোজ কম্পিউটারে মুলতুবি রিবুট চেক করতে সক্ষম হবেন শক্তির উৎস লিপি.



এখন, যখন একটি রিবুট মুলতুবি থাকে, তখন নিচের সারণীতে দেখানো সম্পর্কিত মান এবং শর্তগুলির সাথে নিম্নলিখিত রেজিস্ট্রি অবস্থানে নির্দেশ করতে উইন্ডোজ কিছু রেজিস্ট্রি মান বা পতাকা যোগ করবে।

চাবি মান অবস্থা
HKLM:\software\Microsoft\updates UpdateExeVolatile মান 0 ছাড়া অন্য কিছু
HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager PendingFileRename Operations মান বিদ্যমান
HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager PendingFileRename Operations2 মান বিদ্যমান
HKLM:\software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Reboot প্রয়োজনীয় যে কী বিদ্যমান
HKLM:\software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Services\মুলতুবি যে যেকোনো GUID সাবকি বিদ্যমান
HKLM:\software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\PostRebootReporting যে কী বিদ্যমান
HKLM:\software\Microsoft\Windows\CurrentVersion\RunOnce DVDRebootSignal মান বিদ্যমান
HKLM:\সফ্টওয়্যার\Microsoft\Windows\CurrentVersion\component ভিত্তিক সার্ভিসিং\Reboot পেন্ডিং যে কী বিদ্যমান
HKLM: \ সফটওয়্যার \ মাইক্রোসফ্ট \ উইন্ডোজ \ বর্তমান সংস্করণ \ উপাদান ভিত্তিক সার্ভিসিং \ রিবুটইনপ্রগ্রেস যে কী বিদ্যমান
HKLM: \ সফটওয়্যার \ মাইক্রোসফ্ট \ উইন্ডোজ \ বর্তমান সংস্করণ \ উপাদান ভিত্তিক সার্ভিসিং \ প্যাকেজ মুলতুবি যে কী বিদ্যমান
HKLM:\software\Microsoft\ServerManager\CurrentReboot প্রচেষ্টা যে কী বিদ্যমান
HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon ডোমেনে যোগ দিন মান বিদ্যমান
HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon SpnSet এড়িয়ে চলুন মান বিদ্যমান
HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName কম্পিউটার নাম HKLM-এ মান ComputerName:\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName আলাদা

যেহেতু আমরা প্রাসঙ্গিক রেজিস্ট্রি পাথগুলি চিহ্নিত করেছি, ম্যানুয়ালি রেজিস্ট্রির মাধ্যমে আঁচড়ানোর পরিবর্তে কারণ আপনি একটি রেজিস্ট্রি পাথ চেক করতে ভুলে যেতে পারেন বা কোনটি চেক করতে হবে তা ভুলে যেতে পারেন তৈরি করুন এবং চালান একটি Check-PendingReboot.ps1 স্ক্রিপ্ট নীচের কোডটি ব্যবহার করে টাস্কটি স্বয়ংক্রিয়ভাবে উপরের টেবিলের সমস্ত রেজিস্ট্রি কী চেক করতে।

  পাওয়ারশেল স্ক্রিপ্ট তৈরি করুন এবং চালান



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

এর মাধ্যমে আপনি যত খুশি সার্ভার দিতে পারবেন কম্পিউটার নাম স্ক্রিপ্টে প্যারামিটার যা ফিরে আসবে সত্য বা মিথ্যা সার্ভারের নাম সহ। আপনি নিম্নলিখিত অনুরূপ স্ক্রিপ্ট চালানো এবং নিশ্চিত করতে পারেন পাওয়ারশেল রিমোটিং সেট আপ এবং আপনার সার্ভারে উপলব্ধ.

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

পড়ুন : টাস্ক শিডিউলারে পাওয়ারশেল স্ক্রিপ্ট কীভাবে শিডিউল করবেন

PowerShell স্ক্রিপ্ট ব্যবহার করে, আপনি ডোমেনের এক বা সমস্ত কম্পিউটারকে জিজ্ঞাসা করতে পারেন বা ম্যানুয়ালি সার্ভারের নামগুলি প্রদান করতে পারেন যেগুলি রিবুট মুলতুবি থাকা মেশিনগুলি নির্ধারণ করতে। একবার শনাক্ত হয়ে গেলে, আপনি তখনই মেশিনগুলি পুনরায় বুট করতে পারেন বা পরে পুনরায় বুট করার জন্য একটি তালিকা তৈরি করতে পারেন।

এখন পড়ুন : কিভাবে PowerShell ব্যবহার করে দূরবর্তীভাবে উইন্ডোজ কম্পিউটার পুনরায় চালু করবেন

এর মানে কি একটি উইন্ডোজ রিবুট মুলতুবি আছে?

সাধারণত, একটি মুলতুবি রিবুট অনুরোধ ঘটে যখন একটি প্রোগ্রাম বা ইনস্টলেশন ফাইল, রেজিস্ট্রি কী, পরিষেবা, বা অপারেটিং সিস্টেম সেটিংসে পরিবর্তন করে সিস্টেমটিকে একটি ক্ষণস্থায়ী অবস্থায় রেখে দেয়। ক্ষেত্রে আপনি পেতে একটি মুলতুবি রিবুট সনাক্ত করা হয়েছে৷ বিজ্ঞপ্তি, এটি সহজভাবে নির্দেশ করে যে আপডেটগুলি মেশিনে মুলতুবি রয়েছে এবং কোনও অতিরিক্ত আপডেট ইনস্টল করার আগে একটি রিবুট করতে হবে।

পড়ুন :

  • আপডেট রিস্টার্ট বিজ্ঞপ্তি কীভাবে নিষ্ক্রিয় বা সক্ষম করবেন
  • উইন্ডোজ আপডেট পেন্ডিং ইন্সটল বা ডাউনলোড, ইনিশিয়ালাইজিং ইত্যাদি

রেজিস্ট্রিতে মুলতুবি রিবুটগুলি কীভাবে পরীক্ষা করবেন?

আপনি দ্বারা এটি করতে পারেন উইন্ডোজ রেজিস্ট্রি অনুসন্ধান করা হচ্ছে জন্য রিবুট আবশ্যক চাবি. এই পোস্টে উপরের টেবিলে, আমরা মুলতুবি রিবুট রেজিস্ট্রি কীগুলির জন্য প্রাসঙ্গিক রেজিস্ট্রি অবস্থান চিহ্নিত করেছি। আপনার পিসি একটি উইন্ডোজ আপডেট ইনস্টলেশন সম্পূর্ণ করার জন্য পুনরায় চালু করার প্রয়োজন হলে আপনি একটি বিজ্ঞপ্তি দেখাতে চান, ক্লিক করুন শুরু করুন > সেটিংস > আপডেট এবং নিরাপত্তা > উইন্ডোজ আপডেট > উন্নত বিকল্প . এর জন্য বোতামটি চালু বা বন্ধ করতে টগল করুন আপনার পিসি আপডেট করা শেষ করার জন্য পুনরায় চালু করার প্রয়োজন হলে একটি বিজ্ঞপ্তি দেখান বিকল্প

এছাড়াও পড়া : একটি সিস্টেম মেরামত মুলতুবি আছে যা সম্পূর্ণ করতে একটি রিবুট প্রয়োজন৷ .

জনপ্রিয় পোস্ট