Powershell

New-ScheduledTaskTrigger 使用 -DaysofWeek 的變數

  • March 27, 2020

我正在編寫一個腳本,將使用者的輸入輸入到 Register-ClusteredScheduledTask 我正在嘗試為 -DaysOfWeek 使用字元串,但只收到各種錯誤…

New-ScheduledTaskTrigger -Weekly -WeeksInterval $recur -DaysOfWeek $day -At $starttime

New-ScheduledTaskTrigger:無法處理參數“DaysOfWeek”的參數轉換。無法轉換價值“

$$ dayofweek $$Sunday,Wednesday,Saturday”輸入“System.DayOfWeek”$$ $$”。錯誤:“無法轉換值”$$ dayofweek $$Sunday,Wednesday,Saturday”鍵入“System.DayOfWeek”。錯誤:“無法匹配標識符名稱$$ dayofweek $$Sunday,Wednesday,Saturday 到一個有效的列舉數名稱。指定以下列舉器名稱之一併重試:星期日、星期一、星期二、星期三、星期四、星期五、星期六""

我確實注意到,在設置個別日子時,系統會為每一天分配一個 64 位數字,從星期日的 1 點到星期六的 64 點開始……

Enabled            : True
EndBoundary        :
ExecutionTimeLimit :
Id                 :
Repetition         :
StartBoundary      : 2020-03-28T02:00:00Z
DaysOfWeek         : 64
RandomDelay        :
WeeksInterval      : 1
PSComputerName     :

因此,如果我安排以下,我會得到週日+週六的加法……

PS C:\Scripts\DCS> New-ScheduledTaskTrigger -Weekly -WeeksInterval $recur -DaysOfWeek Sunday,Saturday -At $starttime


Enabled            : True
EndBoundary        :
ExecutionTimeLimit :
Id                 :
Repetition         :
StartBoundary      : 2020-03-28T02:00:00Z
DaysOfWeek         : 65
RandomDelay        :
WeeksInterval      : 1
PSComputerName     :

如何為 -DaysOfWeek 使用變數並實際工作而不會引發某種錯誤?

我嘗試了各種將字元串轉換為日期的方法,但效果有限。

當我使用[dayofweek]$day = 'Sunday,Saturday'

$day只是=到Saturday

[dayofweek]$day您一起定義一個單值變數。您需要將其定義為數組:

$ [dayofweek[]]$day = 'Sunday','Saturday'

引用自:https://serverfault.com/questions/1008679