если скрипт работает верно, перезапустите / запустите следующую часть - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь заставить скрипт перезагружать компьютер, когда скрипт возвращает $ true, я планирую запустить скрипт в SCCM или планировщике задач.Я собирался заставить SCCM перезагрузить компьютер, если он возвращает $ true, но не знаю как, поэтому сейчас я пытаюсь добавить перезапуск в самом скрипте, но не знаю, как его правильно добавить.

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
}

If $true) {
  Restart-Computer

  }  Else {
  exit 
}  

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Этот пример кода должен работать для вас.

function reboot
{
    function Get-property
    {
    try { 
            if (Get-ItemProperty 'hklm:software\microsoft\windows\currentversion\policies\system' -name enablelua)
            {
                $value = "true"
            }
            else{ $value = "false" }
        }
    catch{}
    return $value
    }
    Get-property

    If (Get-property -eq "true") 
    { your code for restart }

}

reboot
0 голосов
/ 12 марта 2019

If (Test-PendingReboot -eq "true") {ваш код для перезапуска}

...