回答:
イベントID 4801は、ワークステーションがロック解除されたに対応しています。ここでの回答で説明しているように、このイベントのログを有効にすることができます。
これで、schtasksを次のように使用して、このイベントによってトリガーされるタスクを作成できます。
schtasks /Create /RU "Username" /SC ONEVENT /MO "*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and EventID=4801]]" /EC Security /TN "Taskname" /TR "Drive:\path to\program.exe" /F
ここでは、/ ECパラメーターを使用してイベントチャネル(この場合はセキュリティログ)を定義しました。MOまたは修飾子のパラメータは、我々が興味を持っているイベントを一致させるために必要なのXPathフィルターを指定するために使用されます。
ただし、イベントのログ記録をオンにする必要なく、ワークステーションのロック解除トリガーを使用できると述べる場合もありますが、もちろん正しいでしょう。タスクで使用可能なトリガーは次のとおりです。
緑色でマークしたものは、schtasksの/ SCパラメーターを使用して指定できます。
/SC schedule Specifies the schedule frequency.
Valid schedule types: MINUTE, HOURLY, DAILY, WEEKLY,
MONTHLY, ONCE, ONLOGON, ONSTART, ONIDLE, ONEVENT.
赤でマークしたものには、対応するschtasksオプションがないようです。そのようなトリガーを使用してタスクを作成するためのあいまいな方法があるかもしれませんが、私はそれを見つけていませんでしたが、それは不可能だと思う傾向があります)。
そこである(ドラムロールしてください)に私たちを導き、もちろんこの問題を回避するには、...
タスクスケジューラUIを使用して、必要なトリガー(必要に応じて複数)を使用してタスクを作成し、XMLとしてエクスポートします。もちろん、オンデマンドでXMLをインポートし、タスクを完全に再作成できます。
schtasks /Create /TN "Taskname" /XML "ExportedTask.xml"
schtasks /Delete /TN "Taskname"
コマンドを繰り返してタスクを作成する場合に役立ちます。
gpedit
、Windows Enterpriseにのみ存在するものを使用しています。Windows HOMEコンピューターでこれを行うにはどうすればよいですか?
私にとっては、この投稿に基づいて次のようにEventID 42
および/EC System
パラメーター
を使用することが効果的でし
た。MicrosoftCommunityのイベントログに電源イベント(スリープおよびスリープ解除)を記録する。
だから、以下schtasks
は私にとってはうまくいった:
schtasks /create /sc onevent /mo "*[System[(EventID=42)]]" /EC System /tn task1 /tr "batchfile.bat"