前提・実現したいこと
Windows Server 2019上でInternet Explorer 11で表示したWebページを定期的に印刷を行わせたい為、
印刷するVBSをこちらのサイトを参考にして作成し、
タスクスケジューラに起動タスクを作成しました。
タスクはサインアウト中も動作させます。
発生している問題・エラーメッセージ
タスクを起動したところ、状態が実行中のまま返ってきません。
どのステップで止まっているか確認する為、ファイルに進捗を出力するようにして実行したところ、
印刷のExecWBで停止していることが分かりました。
(下記のソースの"読み込み待機の終了"までがファイルに出力されていました。)
正常に印刷させるには何か処理が不足してるのでしょうか?
vbscript
1Dim fso 2Set fso = WScript.CreateObject("Scripting.FileSystemObject") 3 4Dim outputFile 5Set outputFile = fso.OpenTextFile("c:\test.txt", 2, True) 6 7outputFile.WriteLine "処理の開始" 8 9'IE 10Set ie = CreateObject("InternetExplorer.Application") 11ie.Visible = True 12 13outputFile.WriteLine "IEの起動" 14 15'Webページを開く 16ie.Navigate "https://www.google.com/" 17 18'ページの読み込みが終わるまで待機 19Do Until ie.Busy = False 20 WScript.sleep(250) 21Loop 22 23outputFile.WriteLine "読み込み待機の終了" 24 25'デフォルトプリンタに印刷する(印刷ダイアログなしで) 26ie.ExecWB 6, 2, 3 27 28outputFile.WriteLine "印刷の終了" 29 30'IEを終了 31ie.Quit 32 33outputFile.WriteLine "IEの終了" 34 35outputFile.Close
試したこと
VBSをexplorer等から実行すると正常に印刷されました。
実行したユーザもタスクを起動するユーザと同一ユーザを使用しており、administrators権限を与えています。
また、既定のプリンタをいくつかのメーカーやPDF出力を行う仮想プリンタに変えても状況は同じです。
VBSではie.VisibleをFalseにしたり、
ie.ExecWBの部分の不要と思われる第3引数を除いて
ie.ExecWB 6, 2
としたりもしましたが、結果は変わりませんでした。
タスクの実行時にユーザがサインイン・サインアウトしていても結果は変わりません。
調査していると、EXCELでも同様にサインインしなければタスクスケジューラから実行できないという事象のサイトが見つかりました。
こちらでは__%SystemRoot%\SysWOW64\config\systemprofile__配下にDesktopというフォルダを作ることで対策されていました。
試してみましたが結果は変わらず、Internet Explorerの実行には影響しないようでした。
補足情報(FW/ツールのバージョンなど)
Internet Explorerでの見た目での印刷が必要な為、
ChromeやFirefox等は使用できない状態です。
あなたの回答
tips
プレビュー