SQL Server 2008 R2でSQL Serverエージェントジョブ内から(Windows)バッチファイルを実行しようとしています。ジョブステップで、新しいステップを作成し、そのタイプを「オペレーティングシステム(CmdExec)」に設定します。最初は「コマンド」フィールドにバッチファイル名のみを入力しようとしました。ファイルが見つからないというエラーが発生します。
それから私は試しました:cmd.exe c:\ test.bat
これは始まりますが、完了することはありません(実際に動作しているようには見えません)。
バッチファイル名を引用符で囲みました:cmd.exe "C:\ test.bat"でも、違いはありません。
これを機能させる魔法の組み合わせは何ですか?
メモリが正しく機能する場合:
cmd.exe /c "c:\test.bat"
パスまたはファイル名にスペースがある場合は引用符が必要です
同様に、ジョブエージェントサービスに使用される権限を確認します。サービスを実行しているユーザーに、ファイルを表示する権限がない可能性があります。
幸運を
"c:\test.bat"
だけが仕事をします
そのドライブとフォルダの場所でバッチファイルを実行する権限があることを確認してください。
手動で実行すると資格情報が使用されますが、SQLエージェントによって自動的に実行されると、エージェントの資格情報と権限が使用されることを忘れないでください。