タスクスケジューラでPowerShellスクリプトを実行する際、
New-Object -comObjectできない話。
メールを送信するPowerSehllを書いてタスクスケジューラを書き
タスクスケジューラで実行させ定期的にメールを送信しようとしました。
しかし、なぜかメールが送信されない・・・。
スクリプト単体ではきちんと動作したため、どうやらタスクスケジューラとの
相性が悪い模様。
$MsOutlook = New-Object -ComObject Outlook.Application
↑この部分でOutlookオブジェクトが取得できていないのではないか?
調べてみると
nashellog: Officeアプリケーションを操作するPowerShellスクリプトをタスクスケジューラから自動起動する方法
上記リンクを見つけた。
Windows7 32bitであったため、
C:\Windows\System32\config\systemprofile\Desktop
フォルダのみを作成。
しかし、試してみるもうまくいかず。
権限も「最上位の権限で実行する」「ユーザがログオンしているかどうかにかかわらず実行する」にチェック入れたのに。
タスクスケジューラには電子メールを送信するという項目がデフォルトである。
決まったメールを送るだけならばこれでも目的は達成されるのですが、
今回はスクリプトで動的にメールの内容を変えたい。
私が考え付いたタスクスケジューラを使わない代替手段は以下2つ
(1)スクリプトで時間を計って、メールを送信させる
(2)タスクスケジューラにジョブを登録するコマンドレットを使う
で、今のところ(1)で動かしてみています。
時間を正確に測るにはひと工夫必要なのが面倒くさい。
なので今は正確には図らず、Start-Sleepコマンドレットで約1時間を計っている。
(2)は出来たらいいなと思っているのですが、まだ方法を調査しきれていません。