Powershell: проверьте компьютер, чтобы увидеть, требуется ли перезагрузка, иначе пропустите - PullRequest
0 голосов
/ 21 января 2020

Я пытаюсь использовать сценарий Test-Pendingreboot, чтобы найти компьютеры, которым требуется перезагрузка, но я не знаю, как получить результаты из Test-pendingreboot, если $ true принудительной перезагрузки компьютера.

Любая помощь будет оценена

Спасибо

1 Ответ

2 голосов
/ 21 января 2020

Я предполагаю, что вы используете этот код, найденный в https://ilovepowershell.com/2015/09/10/how-to-check-if-a-server-needs-a-reboot/

#Adapted from https://gist.github.com/altrive/5329377
#Based on <http://gallery.technet.microsoft.com/scriptcenter/Get-PendingReboot-Query-bdb79542>
function Test-PendingReboot
{
 if (Get-ChildItem "HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" -EA Ignore) { return $true }
 if (Get-Item "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" -EA Ignore) { return $true }
 if (Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" -Name PendingFileRenameOperations -EA Ignore) { return $true }
 try { 
   $util = [wmiclass]"\\.\root\ccm\clientsdk:CCM_ClientUtilities"
   $status = $util.DetermineIfRebootPending()
   if(($status -ne $null) -and $status.RebootPending){
     return $true
   }
 }catch{}

 return $false
}

Поскольку неясно, как вы используете это для запроса машины, будет сложно ответь на свой вопрос точно. Если это проверка локального хоста вы можете:

$DoINeedAReboot = Test-PendingReboot
if ($DoINeedAReboot) { Restart-Computer }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...