タスクスケジューラーで実行したバッチでExcelが開かない

エクセルファイルを操作するバッチをタスクスケジューラーで実行すると以下のエラーが出る。
普通に実行すると問題ないのに。。。

[COMException]ファイル 'C:\excel.xls' にアクセスできません。次のいずれかの理由が考えられます。

• ファイル名またはパスが存在しません。  
• ファイルが他のプログラムによって使用されています。  
• 保存しようとしているブックと同じ名前のブックが現在開かれています。

それらしいものを見つける

Windows7のOfficeサーバーサイドオートメーションで例外がスローされる - プログラマーな日々

どうやら、2003R2サーバーまでは存在していた「SystemProfile が実行する仮想デスクトップフォルダが存在しない」ため実行ユーザーがログオンしていない状態で実行(タスク実行とか)すると、デスクトップがないのでEXCEL(つかオフィス?)が実行できないらしい。

以下のフォルダを作成したら解決しました。

x86
C:\Windows\System32\config\systemprofile\Desktop
x64
C:\Windows\SysWOW64\config\systemprofile\Desktop

ただこの方法はマイクロソフトが推奨してないとのこと
https://support.microsoft.com/ja-jp/help/257757/considerations-for-server-side-automation-of-office