簡體   English   中英

如何在 powershell 腳本中創建調度程序任務路徑的集合

[英]How to create collection of scheduler task path in powershell script

我有一個 powershell 腳本,我必須在其中啟用或禁用任務。 在下面的腳本中我正在做的事情

  1. 閱讀 $TaskPath = '\Microsoft\Windows\PowerShell\ScheduledJobs'
  2. 通過 $TaskPath 獲取 ScheduledTask
  3. Get-ScheduledJob

現在在我的項目中,我們有許多不同的計划任務,它們存在於不同的路徑中,例如“\Microsoft\Windows\PowerShell\ScheduledJobs”中的少數任務以及根路徑中的某些任務,例如“\printtask”。

現在,當我傳遞要在腳本中執行的任務名稱時,如果 $TaskPath = '\Microsoft\Windows\PowerShell\ScheduledJobs' 中不存在該任務,那么它將不會執行。 為了解決這個問題,我必須添加另一個 if 條件來設置根路徑。

讓我們說將來如果我們有一些不同路徑的新任務,那么我必須再次添加新的 if 條件。 為了避免這種情況,我正在尋找一種方法來檢查任務路徑的集合/列表,然后我們通過該集合/列表 go 並找到計划的作業並執行。

如果將來我們需要使用其他路徑添加新任務,我們可以將該任務路徑添加到該集合/列表中,並避免使用額外的 if 語句。

任何人有任何建議我可以如何存檔這個..?

在此處輸入圖像描述

您可以通過構建對象數組並將所有任務路徑添加到其中,將所有任務路徑存儲在初始邏輯中,有點像這樣:

$TaskPathList = @()
$TaskPathList += New-Object -TypeName PSObject -Property @{TaskPath = $TaskPath1;}
$TaskPathList += New-Object -TypeName PSObject -Property @{TaskPath = $TaskPath2;}

稍后,您可以遍歷此 TaskPath 集合以讀取它們並做出相應的決策:

$TaskPathList | ForEach-Object {
    if(<Place your condition to check against $_.TaskPath >)
    {
        #Do your stuff
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM