タスクスケジューラの自動実行(Windows Server 2016)

こんにちは、技術社員です。

今日はWindowsのタスクスケジューラ設定でハマってしまい、
以前にも同じようなことがあったのにすっかり忘れてたので、備忘を兼ねて残しておきます。
#人の記憶って、てきとーですね。。。

 

■環境
Windows Server 2016

 

■やりたい事
タスクスケジューラよりvbsを起動する。
vbsからはExcelマクロを起動しています。

タスクスケジューラ -> VBS -> Excelマクロ

って感じです。

夜間に動かしたいので、全般タブの「ユーザーがログインしているかどうかにかかわらず実行する」に
チェックしました。

 

■迷走期
起動時間になっても、ステータスは実行中ですが、ありゃ?動いていません。
処理に時間がかかるのかなーと思い、放置してコーヒーブレイクしたのですが、
動いている気配がないです。。。
「ユーザーがログインしているときのみ実行する」にチェックしている場合や
vbsをコマンドプロンプトで動かした場合は問題なく動きます。

Excelが32ビットだからか動かないのかと思いましたが、
同じタスクスケジューラの設定は別サーバ(Windows Server 2012 R2ですが)にもしてあり、問題なく動いているので、何かの設定が足りないとは思っていましたが。。。

 

■解決期
タスクスケジューラよりExcel(Office系も?)を動かしたい場合は、
c:\Windows\SysWOW64\config\systemprofileに、Desktopフォルダを作成する必要があるようです。(32ビットの場合は、c:\Windows\System32\config\systemprofile)

上記フォルダを作成したことにより、無事に解決しました。
今回は上記方法で解決しましたが、他にも、操作タブの開始オプションに
動かすプログラムのフォルダを設定すると解決する場合もあるようです。