1

所以我想寫一個PowerShell腳本,做以下操作:使用任務計劃程序重新啓動後,開始PowerShell腳本

  • 下載&安裝Windows更新(完成)
  • 自動重新引導(已完成)在重新啓動後
  • 檢查是否還有任何更新
  • 去回至開始直到有沒有更多的更新左

我已經構建了我的PowerShell腳本如下:

Import-Module PSWindowsUpdate 

Get-Command –module PSWindowsUpdate 

Add-WUServiceManager -ServiceID 7971f918-a847-4430-9279-4a52d1efe18d 

Get-WUInstall –MicrosoftUpdate –AcceptAll –AutoReboot 

其中一期工程完美。

但是,根據某些情況,重新啓動後仍有可用的更新可以下載和安裝。

我想要做的是在每次重新啓動後繼續運行上面的腳本,直到沒有更多的更新需要下載安裝的&。

我發現的是在Windows中的Task scheduler可能很方便。

我也已經構建是一個「邏輯」,以檢查是否有留下任何更新(並安裝):

$Output = (Get-WUInstall -MicrosoftUpdate -ListOnly) | Out-String 
if($Output.Contains("Update")) 
    { 
      Write-Host "Updates Available, they will be installed..." 
      Get-WUInstall –MicrosoftUpdate –AcceptAll –AutoReboot 
    }else 

    { 
    Write-Host "There are no updates available. " 
    } 

和上面的一塊代碼也完美的作品。

我的問題是用什麼方式告知我可以讓這個腳本(或多個腳本?)運行每次開機後,直到沒有剩下更多的更新......

感謝

回答

1

你是在正確的軌道已經。只需將一個計劃任務添加到系統中,並將腳本作爲參數運行powershell.exe,並將任務觸發器設置爲「啓動時」

+0

非常感謝TToni,但我在想,這是不是說我的腳本在每次重新啓動後都會繼續運行(即使沒有更多的更新了?) 。或者你是否將此視爲「長期使用的腳本」? –

+0

您可以向腳本添加邏輯,以便在沒有更多安裝更新時通過使用此cmdlet刪除計劃任務:'Unregister-ScheduledTask' (請參閱:https://blogs.technet.microsoft.com/heyscriptingguy/2015/01/16/powertip-use-powershell-to-delete-scheduled-task /) –

+0

謝謝馬克!我會毫不猶豫地進行檢查 –

1

Boxstarter比您滾動自己的腳本更容易管理此任務。

然後保存腳本使用下面的命令:

# Update Windows and reboot if necessary 
Install-WindowsUpdate -AcceptEula 

Boxstarter還可以自動安裝和其他軟件負載,使用的巧克力的設置。請參閱this link以獲取大量示例。

如果工作失敗,或者如果您確實想要推出自己的更新腳本,則需要查看工作流程,這些工作流程可以在重新啓動後從停止的位置恢復。檢查這兩個鏈接(link1,link2)例如

相關問題