覚え書
ScheduledTasks
一覧
Get-Command -Module ScheduledTasks
すでに登録されてる物の取得
Get-ScheduledTask
登録
Register-ScheduledTask -TaskPath \ -TaskName task_name -Action $action -Trigger $trigger -Settings $settings -User $user -Force
-TaskPath
は保存場所。
-TaskName
は名前。
-Action
は実行するプログラムの場所とか引数。
New-ScheduledTaskAction -Execute exe_path
のように作成。
-Trigger
は実行のタイミング。
New-ScheduledTaskTrigger -Daily -At ~~~
とかNew-ScheduledTaskTrigger -AtStartUp
とか。
-Settings
はこまごまとした設定。
New-ScheduledTaskSettings
で作成。
-User
はOptional。
実行ユーザーをきめる。
管理者権限で実行させたい場合は-User ($env:COMPUTERNAME + "\Administrator")
のように与える。
-Force
は上書きする。
Tips
まずは公式ドキュメントをみる。 ただ、ちょっと例が少ない。 PowerShell で スケジューラタスク(SchedulerTask) を操作するも参照した。
また、既に登録されてるタスクをGet-ScheduledTask
で取得して、その中身を見るのも役に立つ。
あと、taskschd.exe
はパスが通ってる。
Event Viewer
eventvwr.exe
で起動できるが、PowerShellでも見ることができる。
ProviderNameなどでフィルタリングできるが、Event Viewerにあった管理イベント一覧をフィルタする方法がよくわからなかったので、
そのフィルタからGUIでXMLを出して、-FilterXml
で指定することにした。
これがそのXML。
Event Viewerっぽく表示する(管理者権限が必要)。
> Get-WinEvent -FilterXml $filter_xml | sort TimeCreated -Descending -Top 30 | select Level, LevelDisplayName, TimeCreated, ProviderName, Id, Message | Format-Table
メモ
- 一応
sort
はSort-Object
、select
はSelect-Object
sort -Descending
にすると-Top
,-Bottom
の挙動も逆になるのでこの順番にしたselect
でProviderName
を選択することでProviderName
ごとのTableではなくできる。gci -r
でも同様のことができる。Format-Table
はPropertiesが多すぎてもTableにしてくれるので便利。
あとは適宜、where
でフィルタすればいいはず。
なんとなくpowershellに慣れてきた。
Comments
Reply to this post (mastodon) to leave a comment.
Reply