WSHを使ったWindowsのリモート管理

大量のWindowsマシンを管理していると、それぞれのマシンへのソフトのインストールや設定の変更などの細かいメンテナンスが物凄く面倒くさい。 この部分をいかに省力化できるかで作業効率が段違になる。


UNIXなんかだったら rsh とか使うことでいくらでも簡単にできるんだけど、Windowsには標準ではそういう分かりやすく使いやすいツールがない。 もちろん有料のソフトを買えばそういう一括管理用のソフトなんかは幾らでもあるんだけど、うちの会社ではそんな贅沢は許されないので、無料で使いやすいものはないかと思っていろいろ調べてみたら、Windowsに標準でついている Windows Scripting Host(以下 WSH) がリモートでのコマンド実行ができるという事を知ったので早速設定。


WSHは標準でインストールされているが、セキュリティ的な問題で最初は使えなくなっているので、それを使えるように設定する必要がある。ということで、バッチ書いた。

@echo off
echo WindowsXPWSHを有効にします。
pause

echo リモート管理を有効にするレジストリの追加
reg add "HKLM\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Remote /t REG_SZ /d 1

echo リモートスクリプトのセットアップ
wscript -regserver

echo ファイヤウォールにポートの追加と例外プログラムの追加
netsh firewall add allowedprogram C:\WINDOWS\system32\wbem\unsecapp.exe unsecapp enable
netsh firewall add portopening TCP 135 DCOM_TCP enable


このバッチを実行することで WSH がそのマシンで使えるようになるはず。


あとはWindows管理者のためのWindows Script Host入門:第9回 WshControllerオブジェクトの詳細 (3/3) - @ITこの辺参考にリモートスクリプトを書いたら、サーバからクライアントマシンでなんかのバッチジョブ一括実行とかできるようになる。


上記のバッチはドメイン環境が前提なので、もしこれをワークグループでやろうというのなら、対象となるコンピュータに同じアカウント名、パスワードでユーザをつくって、そのユーザでスクリプトを実行する必要があるはず。



その他参考以下のページを参考にさせて頂きました。


あとは WSH に使いなれる必要があるわけだ…