|
Last-modified: 2004-01-26 (月) 00:03:12 (7611d)
Windowsのシステム管理をプログラムから行う際には、ADSI(Active Directory Services Interfaces)を利用することになります。WSHはADSIをかなり強力にサポートしています。 ユーザ管理WSHでWindowsのユーザ、グループを登録、削除するには、以下のようなコードを用います。NT系OS(WinNT,Win2000,WinXP,Win2003)で有効です。 ユーザの登録adduser.js var WshNetwork = WScript.CreateObject("WScript.Network"); var ComputerName = WshNetwork.ComputerName; var UserName = WshNetwork.UserName; var fullPathComputer = "WinNT://" + ComputerName + ",Computer"; var fullPathAdmin = "WinNT://" + ComputerName + "/Administrators,group"; // ユーザcrackを作成 var objComputer = GetObject(fullPathComputer); var newUser = objComputer.Create("user", "crack"); //次回ログオン時パスワード変更要求は無効に設定 newUser.Put("PasswordExpired", 0); newUser.SetInfo(); //ユーザをAdministratorsグループに追加 var fullPathUser = "WinNT://" + ComputerName + "/crack"; var AdminGroup = GetObject(fullPathAdmin); AdminGroup.Add(fullPathUser); WScript.Echo("Done!"); ユーザの削除// ユーザcrackを削除 var objComputer = GetObject(fullPathComputer); var newUser = objComputer.Delete("user", "crack"); IIS管理 IISをインストールすると、AdminScripts/フォルダにIIS管理スクリプトがコピーされますね。adsutil.vbsが参考になるでしょう。 Webコンテンツの認証方法の設定例えばwwwroot直下のtestフォルダに対してNTLM認証のみに設定する場合は以下のようになります。 iisauth.js var ObjectPath = "/test"; var WshNetwork = WScript.CreateObject("WScript.Network"); var ComputerName = WshNetwork.ComputerName; var IIsObjectPath = "IIS://" + ComputerName + "/W3SVC/1/Root" + ObjectPath; var IIsObject = GetObject(IIsObjectPath); IIsObject.AuthFlags = 0; IIsObject.AuthAnonymous = false; IIsObject.AuthBasic = false; IIsObject.AuthNTLM = true; IIsObject.Setinfo(); Webコンテンツのアクセス権限の設定例えばwwwroot直下のtestフォルダに対して読み取りのみに設定する場合は以下のようになります。 iisacl.js var ObjectPath = "/test"; var WshNetwork = WScript.CreateObject("WScript.Network"); var ComputerName = WshNetwork.ComputerName; var IIsObjectPath = "IIS://" + ComputerName + "/W3SVC/1/Root" + ObjectPath; var IIsObject = GetObject(IIsObjectPath); IIsObject.AccessRead = true; IIsObject.AccessWrite = false; IIsObject.AccessExecute = false; IIsObject.AccessScript = false; IIsObject.Setinfo(); 追記: WSHはほとんど何でも出来ちゃうので、ネットワーク管理者としては恐ろしいです。(^^;; でもサーバ上のバッチ作業なんかには使いたいし…。使わないのであれば無効化しておくのがいいでしょう。 |