覚え書
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