32ビットのAccessデータベースに接続できるように、64ビットのWindows 7マシンで32ビットで実行する必要があるvbscriptファイルがあります。実行ボックスから次のように入力できます。
C:\Windows\SysWow64\WSCRIPT.EXE P:\Applicants\Applicants.wsf
そしてそれはうまくいきます。これをスケジュールされたタスクとして実行しようとすると、1 秒未満で実行され (それほど速くはないはずです)、正常に終了したと主張します。これは、現在実行している「アクション」です。
Start a Program
C:\Windows\SysWow64\WSCRIPT.EXE
Arguments: //Nologo //B P:\Applicants\Applicants.wsf >> P:\Applicants\logfile.txt
また、WScript ではなく CScript で実行してみましたが、結果はまったく同じです。
「//Nologo //B」(ここで見つけたヒント)を追加する前は、実行が開始され、停止することはありませんでした。
オプションの「開始」ボックスは空です。なんらかの値を入力すると (P:\Applicants を試してみました)、タスクは「エラー値: 2147942667」で開始できません。このエラー コードを検索しても解決策が見つからなかったため、このボックスは空のままにします。
ログファイルは作成されることさえなく、スクリプトが実行する作業はまったく行われません。
タスクはネットワーク アカウントで実行され、必要なすべてのドライブとリソースにアクセスできるはずです。
提案?ログファイルがなければ、この問題のトラブルシューティングをどこから始めればよいかさえわかりません。
編集: 新しい情報: ログインしているときにのみ実行するように設定すると、正常に動作します。実行時にログインしていても機能しないのは、ユーザーがログオフしていても実行するように設定されている場合のみです。
編集 2:「ユーザーがログオフしていても実行する」のセキュリティ コンテキストには、「ユーザーがログオンしているかどうかに関係なく実行する」というラベルの付いたラジオ ボタンを選択します。このラジオ ボタンが選択されている場合、タスクは対話的に実行されません。タスクをインタラクティブに実行するには、[ユーザーがログオンしているときにのみ実行] ラジオ ボタンを選択します。」
したがって、私のスクリプトは何らかの形でインタラクティブであると考えていると思いますが、そうではありません。プロンプト、ダイアログ ボックス、または msgBox 呼び出しの種類がないため、これが問題になる理由がわかりません。