WIndows のタスクスケジュールはc:\windows\system32 で実行される。

WIndows のタスクスケジュールにはまりました。
定時に実行したいファイル c:\db\dbbackup.cmd を登録しても、「この操作が正しく終了しました」となるべき「前回の実行結果」が(0x2)になってしまうのです。

c:\db\dbbackup.cmd

sqlcmd -i c:\db\FullBackup.sql
tar.exe -czf sql-db.tar.gz hoge.bak huga.bak xxxxxx.bak yyyyy.bak
openssl enc -rc2-cbc -in sql-db.tar.gz -out db.tar.gz.enc -pass pass:xxxxx

c:\db\FullBackup.sql

BACKUP DATABASE DB1 TO DISK = 'c:\db\hoge.bak'   WITH INIT
BACKUP DATABASE DB2 TO DISK = 'c:\db\huga.bak'   WITH INIT
BACKUP DATABASE DB3 TO DISK = 'c:\db\xxxxxx.bak' WITH INIT
BACKUP DATABASE DB4 TO DISK = 'c:\db\yyyyy.bak'  WITH INIT

Windows XP および Windows Server 2003 におけるスケジュールされたタスクのトラブルシューティング
System Error Codes (0-499)
(0x2)はファイルが存在しないエラーの模様です。
c:\db\ を見ますとSQL サーバのバックアップファイルは出来ていますが、tar 以降で失敗しているようです。

コマンドラインから ./dbbackup.cmd を実行すると最後まで実行されます。
ここで悩みましたが、コマンドラインからタスクスケジュールを設定するとコマンドプロンプトが表示されるようになり、WIndows のタスクスケジュールはc:\windows\system32 で実行されることが分りました。
c:\db\dbbackup.cmd

sqlcmd -i c:\db\FullBackup.sql
cd c:\db
tar.exe -czf sql-db.tar.gz hoge.bak huga.bak xxxxxx.bak yyyyy.bak
openssl enc -rc2-cbc -in sql-db.tar.gz -out db.tar.gz.enc -pass pass:xxxxx

cd c:\db を入れました。