Windows Server 2012 でスケジュールされたタスクとして Powershell スクリプト ファイルを実行しようとしています。スクリプトは、xml フィルターを使用してイベント ビューアーでイベントを選択し、テキスト ファイルに保存します。スクリプト ファイルは Sugar2SvcNowLog.ps1 という名前で、次のテキストが含まれています。
Get-WinEvent -FilterXml ([xml] (Get-Content "Desktop\Sugar2SvcNow.xml")) | format-table ProviderName, TimeCreated, Id, LevelDisplayName, message -wrap -autosize | Out-File -FilePath "C:\Users\yvoloshin_pdadmin\Desktop\Sugar2SvcNowLog $(get-date -f yyyy-MM-dd_HHmmss).txt"
このスクリプトを Windows コマンド プロンプトで次のように実行すると、意図したとおりにテキスト ファイルが作成されます。
powershell -file "C:\Users\yvoloshin_pdadmin\Desktop\Sugar2SvcNowLog.ps1"
次に、実行するプログラムを次のように設定し"powershell"
、引数を次のように設定したタスクスケジューラジョブを設定します。
-file "C:\Users\yvoloshin_pdadmin\Desktop\Sugar2SvcNowLog.ps1"
ジョブが実行されると、ステータスは「操作が正常に完了しました」と表示されます。しかし、テキスト ファイルが生成されません。ファイルが生成されない場合、操作を正常に完了するにはどうすればよいでしょうか。他に何をすればよいでしょうか。
答え1
スクリプトは を参照していますDesktop
。
ただし、タスク スケジューラから実行すると、ユーザー ログインとデスクトップは存在しません。
ファイルをSugar2SvcNow.xml
何らかのフォルダに置き、スクリプトにその完全なパスを指定することをお勧めします。