ATコマンドからの実行環境

at コマンドを使ってコマンドを実行したときは、特別な環境で実行されるようだ。先日書いた、GnuWin32のidコマンドを実行させてみると、

uid=0(SYSTEM) gid=0

と表示される。もちろん、コマンドプロンプトから実行すると、上記のSYSTEMの部分にはユーザー名が表示される。

この他に、環境変数も異なる。Win2Kだと、システム環境変数と、USERPROFILE に Default User の値がセットされたものだけである。WinXPだとシステム環境変数+色々なよくわからない環境変数がセットされている。いずれにせよ、at コマンドを実行したユーザーの環境変数はセットされない。

また、カレントディレクトリは、%windir%\system32 である。

unix の at コマンドだと、at コマンドを実行したユーザで、at コマンド実行時点の環境変数とカレントディレクトリで実行されるが、それと大きく違い、cron に近いと言える。