質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

Q&A

0回答

1185閲覧

タスクスケジューラから起動したVBSでWebページを印刷したい

dotnetuseryamag

総合スコア16

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

0グッド

0クリップ

投稿2019/09/05 07:30

編集2019/09/12 23:47

前提・実現したいこと

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等は使用できない状態です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Y.H.

2019/09/05 08:14

プリンタの設定などはユーザーごとに記憶されるので念のため確認です。 1)「VBSをexplorer等から実行すると正常に印刷されました。」 この操作を行ったユーザーはタスクスケジューラーで指定している「タスク実行時に使うユーザーアカウント」で指定したユーザですか? 2)「既定のプリンタをいくつかのメーカーやPDF出力を行う仮想プリンタに変えても状況は同じです」 この操作を行ったユーザーはタスクスケジューラーで指定している「タスク実行時に使うユーザーアカウント」で指定したユーザですか? ※質問で「ユーザー」の記載が複数てきますが、それそれ区別がつきずらいので UserA、UserBなど区別がつくように変更いただけませんか?
dotnetuseryamag

2019/09/05 08:31

それぞれ回答します。 1)同一ユーザです。Administrators権限を与えています。 2)同一ユーザです。質問に登場するユーザは全て同一となります。
dotnetuseryamag

2019/09/05 08:33

一点追加で検証しましたので補足します。 Webアクセスに問題があるのではと思い、ローカルに置いてあるhtmlファイルを指定してみましたが、結果は同じでした。
otn

2019/09/05 13:45

タスクスケジューラーの設定で、ユーザーがログオンしている場合のみ実行の設定にすると実行できますか?
dotnetuseryamag

2019/09/05 23:48

ユーザーがログオンしている場合のみに実行するように設定し、同ユーザでサインイン中に実行されるようにしましたが、同じくExecWB手前で停止しました。
dotnetuseryamag

2019/09/06 01:05

otn様 申し訳ありません。設定を誤っていました。改めて「ユーザーがログオンしているときのみ実行する(R)」を選択した状態で、「タスク実行時に使うユーザーアカウント」に指定したユーザでサインインした状態でタスク実行すると、正常に印刷できました。
otn

2019/09/06 11:31

とすると、「画面」がないと実行できない処理ということなので、無理でしょう。
dotnetuseryamag

2019/09/09 08:05

ありがとうございます。サインインしていない状態ではInternet Explorerで使用する領域のようなものが確保されず、エラーとなるのかも知れないですね。この点について、こちらでも調査してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問