2011年2月9日水曜日

WSH(WScript)を管理者として実行したい

Windows Vista以降に搭載された驚異のお節介機能、ユーザーアカウント制御(UAC)。
こちとらWindowsの管理者ユーザーとして操作してるのに、いちいちダイアログが出てきて許可しないといけなかったり、はたまた、ダイアログ無しで起動できて使えてると思ったら、なんか挙動がおかしかったり()。

先日、とあるメンバー制のプロジェクト管理サイトにログインするための自動ログインスクリプトをWSHで書いて、WinXPではサクサク使えていたので意気揚々とWindows 7でも使おうと思ったら、ログインは出来たものの、肝心のプロジェクト管理画面がブラウザ内に出てこない。
ひょっとしてこのサービス、Windows 7なりIE8には対応してないのかな~、と思い諦めていたら、「IEを管理者で実行しないと、中で使っているOCXが使えないから画面表示されないよ」と教えてもらった。

と言うわけでWSH内でそういったことが出来ないかとググってみたら、WSH自体を管理者権限で起動するという荒業スクリプトが紹介されていたので、自分が書いたスクリプトの一番最初にコピペしたら見事に動いてくれました(UACのダイアログは表示されるから、ボタンは1回押さないといけないけどね)。

完成版自動ログインスクリプト

ところで、「自動ログインスクリプトってなんじゃい」という方もいるかと思うので、上記「管理者権限で実行」も反映したスクリプトのソースを以下に置きました。
さすがに、今回のプロジェクト管理サイトへのログインスクリプトそのものを公開するとエライことになるんで、MyYahooへの自動ログイン版に変更してます。
My Yahooに自動ログインするWScript

使い方

  1. 上記リンク先に、WSHのソースがあるので、ソース全部をエディタにコピペ。
  2. 先頭の方にあるIDとパスワード設定部分(xxxxxと表記してるとこ)を自分のものに書き換え。
  3. 拡張子を「vbs」にして保存(例:myyahoo.vbs)。
  4. 保存したファイルをダブルクリック。

IEが起動して、自動的にMyYahooにログインできたらOK。
もちろん、MyYahooからログアウトした状態で実行すると動きがわかりやすいと思います。

ちなみに、最初にUACの鬱陶しいダイアログが出てきますが(っていうか本当はこっちがメインのネタ)、MyYahooへのログインではまったく必要ないので、コメントを見て該当箇所をザックリ削除してもOKですよ。

なるべく汎用性が高くなるようにしたので、「他のサイトにも使いたいな」って方は、主に「#」がたくさんコメントに入っているところをイジれば大体OK。

注意事項

これ、お気付きの通りIDとパスワードを思いっきりスクリプト内に平文で書いて保存しないといけないので、便利な反面、ID、パスワードが漏れやすくなる危険性があります。共用でPCを使っているような方や、Winnyとかを入れちゃってるような方は、もし使うんであれば自己責任でお願いしますね。

0 件のコメント: