先日紹介したexec.vbsのソースコードをみて、どのように実現しているのかを調べてその手法をWebで調べたらすごく良いサイトを発見しました。
Hey, Scripting Guy!
このサイトに書かれている方法で、WMI, ADSIにて別の資格情報でスクリプトを実行することができます。
また「なぜExec.vbsで実行サーバーとしてローカルコンピューターを指定できないのか」不思議だったのですがそれに関しては以下のように記述がありました。
“””1 つ重要な注意があります。この方法では別の資格情報のもとでスクリプトが実行されますが、動作するのはリモート コンピュータ上のみです。なんらかの理由があり、WMI を使用した場合、自分のコンピュータでは、別の資格情報のもとでスクリプトを実行することはできません。実に不思議です。
MSのサイトに「実に不思議です。」と書かれているってのは許されるのでしょうか・・・。
またパスワードをスクリプト内に記述してしまうことに関しては以下の注意が書かれています。
“””1 つ付け加えておきますが、パスワード (特に管理者のパスワード) をスクリプトの中でハードコーディングすることはお勧めしません。そうではなく、コマンドライン引数として、または入力ボックスその他の手段で、パスワードを入力できるようにした方が最善です。
たしかにその通りですが、どうしてもパスワードをスクリプトに埋め込みたい場合にはスクリプトエンコーダーで暗号化してしまうことで安全性を高められます。ただし、メンテナンス性は低くなりますけれども・・・。
追記
関連記事はこちらにまとめてあります。