Windows 64bit 版で気をつけたいこと

サーバの管理台数が増えてくると、運用を自動化するようなツールを入れて管理サーバからリモートでスクリプト実行などをやることになります。64bit 版 Windows を使い始めたあたりでハマったことがありました。

画面から手動で実行した結果と、管理サーバからリモートで実行した結果がちがうってことがありました。具体的には ftp 通信を実行したく、手動実行した場合は普通に通信ができております。しかし管理サーバからリモート実行した起動した ftp が通信できないのです。なんでだ?

手動実行するときはログオンしてる状況すなわち 64bit ネイティブのモードで ftp コマンドを実行しています。Firewall にも ftp.exe (64bit版) を許可プロセスとして登録しておきました。

ところが、リモートから実行するときは専用のエージェント経由で動作するんですね。そのエージェントが 32bit アプリだったと。なのでそこから呼び出されるのは WOW64 上の ftp.exe (32bit版) になってしまったわけです。こっちは Firewall に許可登録していません。なので通信できなかったわけです。

ぱっと見同じやしそんなん気付かへんわ。

32bit と 64bit のプロセスが混在している環境では、いまどっちのモードで動いてるのかつねに気をつけよう。