現在、サーバー2008ボックスのWindowsタスクスケジューラで数百のタスクがスケジュールされています。30分ごとに無期限に実行されているタスクがいくつかあります。スクリプトを使用してこれらのタスクのトリガーを変更し、MFが30分ごとにのみ実行されるようにする方法はありますか?
2 に答える
はい、TaskServiceCOMオブジェクトを使用する場合は可能です。このオブジェクトを使用するスクリプトの例については、以下を参照してください。
Windows 7、Windows Server 2008、およびWindowsVistaでスケジュールされたタスクの名前を変更する
-
スクリプト:https ://gist.github.com/Bill-Stewart/363fdf761499a071439c8ac0c18dcd54
schtasks.exeユーティリティの使用は、Windows XP /Server2003以降ではかなり制限されています。
/SCで許可されているオプションは次のとおりです。
/SC allows for the following frequency schedules:
MINUTE: 1 - 1439 minutes.
HOURLY: 1 - 23 hours.
DAILY: 1 - 365 days.
WEEKLY: weeks 1 - 52. (/D MON,TUE,WED,THU,FRI,SAT,SUN)
ONCE: No modifiers.
ONSTART: No modifiers.
ONLOGON: No modifiers.
ONIDLE: No modifiers.
MONTHLY: 1 - 12, or FIRST, SECOND, THIRD, FOURTH, LAST, LASTDAY.**
私は自分の発見に満足していないので、これを編集し続けます...
SCHTASKSを調べたところ、CMDを使用してスケジュールを変更できないことに気付きました。
technet.microsoft
から
タスクの次のプロパティの1つ以上を変更します。
- タスクが実行するプログラム(/ tr)。
- タスクを実行するユーザーアカウント(/ ru)。
- ユーザーアカウントのパスワード(/ rp)。
私はこれについていくつかの調査を続けるつもりであり、うまくいけば、実行可能な解決策でこの答えを編集するでしょう。
編集
C:\ windows \ system32 \ tasksを見ると、スケジュールされたすべてのタスクが見つかります。それらはXMLとしてリストされていませんが、実際にはXMLです。VBSまたはC#アプリケーションは、次の各ノードを掘り下げて
// Task / Triggers /CalendarTriggerを削除して/ScheduleByDayを削除し、その子ノード/ DaysInterval // Task / Triggers/CalendarTriggerを使用して次を作成します。
<?xml version="1.0" encoding="UTF-16"?>
-<Task xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task" version="1.2">
+<RegistrationInfo>
-<Triggers>
-<CalendarTrigger>
<StartBoundary>2013-03-13T15:20:00</StartBoundary>
<Enabled>true</Enabled>
-<ScheduleByWeek>
-<DaysOfWeek>
<Monday/>
<Tuesday/>
<Wednesday/>
<Thursday/>
<Friday/>
</DaysOfWeek>
<WeeksInterval>1</WeeksInterval>
</ScheduleByWeek>
</CalendarTrigger>
</Triggers>
誰かがこれを手に取って実行できるなら、私は来週これで多くをすることができるとは思わない。