サービスを介してバッチファイルを実行する


1

私はサードパーティ製のアプリケーションを介して実行するようにバッチファイルをスケジュールしようとしていますが、出力ファイルがディレクトリに作成されません。コマンドラインから.BATファイルを実行すると、それは機能し、ファイルが作成されます。 Windowsスケジュールを使用することも成功します。

基本的に、サードパーティ製ソフトウェアは.BATファイルをスケジュールし、それはサードパーティ製ユーザインタフェースの中で成功を示しています。コマンドプロンプトから実行する場合とソフトウェアを実行する場合の違いは、ソフトウェアはWindowsサービスを使用してバッチを起動することです。

実行するために.BATファイルを正常に呼び出すことができたので、サードパーティソフトウェアが成功を示します。ただし、スクリプト内で呼び出されている他のEXEを制御できません。

私はサードパーティ製ソフトウェアで簡単な.BATファイルを実行することができます。例えば、copyコマンドです。

私は問題を抱えている.BAT私は場所にファイルを作成するためにExcelを起動するコンパイルされたEXEを呼び出します。

.batファイルはsomething.exeを呼び出し、次にExcel.exeを呼び出します。

C:\ something.exe -o D:\ filename.xlsm C:\ filename.xlsm refresh_pivot

あなたはそれが権限の問題だと思いますか?プロセスモニターを使用してアクセス拒否エラーを確認しましたが、トレースによればすべてが機能しているようです。それは非64ビットOS上で動作しました、私は現在Win2008 64ビットを使用しています。


私はコマンド構文の問題を抱えています
RobotHumans

出力ファイルをC:のルートに書き込まずに、代わりにサブディレクトリに書き込みます。
LawrenceC

回答:


0

スケジュールタスクが実行されているユーザーの資格情報は何ですか?そのユーザーアカウントでExcelが実行および構成されていますか?私の考えでは、ここで問題が発生しています。Officeは、バッチファイルを実行しているアカウントを最初に実行したことはありません。


0

Afrazierはおそらく正しい軌道に乗っています。これをテストするには、コマンドプロンプトからrunasコマンドを使用し、サービスが使用しているのと同じアカウントでバッチファイルをテスト実行します。これは、ユーザーアカウントまたは管理者の下でコマンドプロンプトからバッチファイルを実行するよりもはるかに優れたテストです。

コマンドは次のようになります。 C:\> runas / user:DOMAIN \ service_acct "schedule.bat"

また、実際のsomething.exeコマンドをバッチファイルに置き換えてみて、異なる出力があるかどうかを確認します。 runas / user:DOMAIN \ service_acct "something.exe -o D:\ filename.xlsm C:\ filename.xlsm refresh_pivot"

それはあなたに何が起こっているのかをよりよく理解させるかもしれません。アクセス拒否エラーが発生した場合、それは間違いなく許可のものです。プロンプトでrunasと入力するだけで、他のオプションも表示されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.