خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


چگونه متوجه شویم که یک کامپیوتر لوکال یا ریموت نیاز به ریستارت شدن دارد؟

چگونه متوجه شویم که یک کامپیوتر لوکال یا ریموت نیاز به ریستارت شدن دارد؟
سیستم خودتان که پشت آن قرار گرفته اید و با آن کار می کنید، بسیار واضح است که در چه شرایطی نیاز به ریستارت دارند ولی برای سیستم های ریموت، دانستن اینکه چه سیستمی هم اکنون نیاز به ریستارت دارد، کار مشکلی است. برای یک ادمین شبکه این موضوع می تواند خیلی جالب باشد که بداند چه کلاینت یا سروری نیاز به ریستارت شدن دارد. مثلا ریستارت به دلیل نصب نرم افزار جدید و یا دانلود شدن بروزرسانی های ویندوز که با ریستارت شدن، پروسه نصب کامل می شود.

سیستم یکپارچۀ سازمانی راهکار



چگونه متوجه شویم که یک کامپیوتر لوکال یا ریموت نیاز به ریستارت شدن دارد؟ . آموزشگاه رایگان خوش آموز

مثلا در تصویر فوق آیکون ویندوز آپدیت را مشاهده می کنید که نشان از نیاز به ریستارت شدن سیستم است، دارد.
برخی کلیدهای رجیستری هستند که توسط آنها می توانید متوجه در انتظار ریستارت شدن و یا نیاز به ریستارت شدن سیستم را متوجه شوید:

در انتظار ریستارت:
HKLM\Software\Windows\CurrentVersion\Component Based Servicing

نیاز به ریستارت:
HKLM\Software\Windows\CurrentVersion\WindowsUpdate\Auto Update

اگر هر کدام از کلیدهای فوق(Component Based Servicing یا Auto Update ) در رجیستری وجود داشتند، نشان از این دارد که سیستم مربوطه نیاز به ریستارت شدن دارد. به جای بررسی از رجیستری، می توانید از یک خط دستور ساده در Powershell به این نکته پی ببرید:

Test-Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending'

یا

Test-Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired'

اگر در خروجی دستورت فوق، جواب True برگشت، پس این سیستم نیاز به ریستارت دارد:

چگونه متوجه شویم که یک کامپیوتر لوکال یا ریموت نیاز به ریستارت شدن دارد؟ . آموزشگاه رایگان خوش آموز


اما برای سیستم های ریموت، از دستور Invoke-Command در Powershell می توانید استفاده کنید.

$command = {Test-Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending'}
Invoke-Command -computer ComputerName -ScriptBlock $command

در دستور فوق، به جای Computername باید نام سیستم مقصد را وارد کنید.

چگونه متوجه شویم که یک کامپیوتر لوکال یا ریموت نیاز به ریستارت شدن دارد؟ . آموزشگاه رایگان خوش آموز

بدیهی است که برای نتیجه گرفتن از دستورات پاورشل در سطح شبکه برای سیستم های ریموت، باید WinRM را روی سیستم ها فعال کنید.
بصورت کلی، با استفاده از دستور زیر در Powershell ISE می توانید ببینید که آیا سیستم نیاز به ریستارت دارد یا خیر:

$pendingReboot = @(
@{
Name = 'Reboot Pending Status: '
Test = { Test-Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending'}
}
@{
Name = 'Reboot Required by Windows Update: '
Test = { Test-Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired'}
})
$computername = "ComputerName"
$session = New-PSSession -Computer $computername
foreach ($test in $pendingReboot) {
$result = Invoke-Command -Session $session -ScriptBlock $test.Test
$test.Name + $result
}

در دستور فوق در داخل " " باید به جای Computername، نام سیستم مقصد را جایگزین کنید.

نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز