使用任務排程器實現 PowerShell 指令碼的自動化
Windows 任務計劃程式可以幫助我們在特定時間或滿足特定條件和觸發器時自動啟動程式或 PowerShell 指令碼。
本文將向我們展示如何從任務計劃程式執行 PowerShell 指令碼並使用 Windows PowerShell 建立計劃任務。
使用任務計劃程式執行 PowerShell 指令碼
按 Windows+R
開啟任務計劃程式控制臺,然後在開啟的視窗中鍵入 taskschd.msc
。執行後,請按照以下步驟操作。
首先,單擊建立任務
並輸入新任務的名稱和描述。接下來,選中以最高許可權執行
框以使用管理員許可權執行程式。
執行任務時,最好分配一個單獨的服務帳戶來執行任務,無論使用者當前是否處於會話中。
其次,單擊觸發器選項卡,然後單擊新建...
按鈕。這裡我們可以指定觸發任務執行的條件。
有多種方法可以開始一項任務。
- 按計劃
- 登入時
- 啟動時
- 空閒時
- 在一個事件上
- 在任務建立/修改
- 在連線到使用者會話時
- 與使用者會話斷開連線
- 在工作站鎖定
- 在工作站解鎖
選擇適合情況的觸發器。
第三,單擊 Actions
選項卡,然後單擊 New…
。在這裡,我們可以指定在滿足觸發條件時將執行的操作。
必須完全遵循此步驟才能正確執行 PowerShell。要自動安排系統將執行的 PowerShell 指令碼,請填寫以下欄位:
- 行動:
啟動程式
- 程式\指令碼:
powershell
(或powershell.exe
) - 新增引數(可選):
-File
(在此處指定檔案的路徑)(此處也放置任何其他引數)
單擊確定
以應用更改。
第四,Conditions
選項卡使我們能夠指定與觸發器一起確定系統應如何執行任務的條件。
第五,我們還可以在設定
選項卡上為你的計劃任務設定附加引數。
六、配置任務時,系統會詢問我們第一步提供的賬號密碼。輸入密碼並點選 OK
儲存任務。
完成後,如果系統已通過設定觸發器啟動該任務,則該任務應成功執行 PowerShell 檔案。
在 PowerShell 中建立計劃任務
現在我們已經討論了使用任務計劃程式設定任務,讓我們討論如何使用 PowerShell 建立計劃任務。
PowerShell 3.0 和 4.0 引入了用於建立計劃任務的 cmdlet,例如 New-ScheduledTaskTrigger
和 Register-ScheduledTask
。
# Specify the trigger settings
$Trigger= New-ScheduledTaskTrigger -At 10:00am -Daily
# Specify the account to run the script
$User= "NT AUTHORITY\SYSTEM"
# Specify program to run (PowerShell)
$Action= New-ScheduledTaskAction -Execute "PowerShell" -Argument "-file C:\PS\PSScript.ps1"
# Specify the name of the task
Register-ScheduledTask -TaskName "Test Script" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest -Force
其他可能對設定新任務有用的觸發選項包括:
-AtStartup
在 Windows 啟動時觸發我們的任務。-AtLogon
在使用者登入時觸發我們的任務。-Once
觸發我們的任務一次。我們可以使用-RepetitionInterval
引數設定重複間隔。-Weekly
每週觸發一次我們的任務。
請注意,在使用這些 cmdlet 時,不可能像我們使用任務計劃程式工具那樣觸發事件
執行。
帶有 on an event
觸發器的 PowerShell 指令碼要複雜得多,因此這是使用 PowerShell 而不是 Task Scheduler 的缺點。
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn