ユーザ登録

  ユーザ作成の手順



User オフジェクトは、Computer オブジェクトに所属していました。つまり、いきなりユーザを作成するのでは無く、Computer オブジェクトの中にユーザを追加するという形を取ります。その場合は、Computer オブジェクトの IADsContainer インターフェイスを使用します

  
Set obj = GetObject("WinNT://NT")
Set objUser = obj.Create( "User", "TestUser001" )
  

これだけではユーザは作成されません。クライアント側のメモリ上にオブジェクトが作成されただけです。ADO で言えばレコード作成時の AddNew が実行された状態と似ています。実際に作成するには、Update を行なう必要があります。ここでは、IADs インターフェイスの SetInfo メソッドを使用します。



  ユーザの設定



何も設定せずに作成されたユーザは、デフォルトの設定で作成されます。その設定は以下のようなものです。但し、このプロパティはGUI から見た管理ツールとしての表現を使っています。プログラミング的には、 WinNT プロバイダ専用のユーザプロパティを設定する事となります

プロパティ 内容
Full Name Name が設定される
Password Empty
User Must Change Password TRUE
User Cannot Change Password FALSE
Password Never Expires FALSE
Account Disabled FALSE
Group Domain User
Profile Empty
Account Never Expires TRUE




  WinNT Custom User Properties

Microsoft の詳細は こちら ですが、実際は UserFlags の設定を行なう事となります

  
typedef enum 
{
  ADS_UF_SCRIPT = 0X0001, 
  ADS_UF_ACCOUNTDISABLE = 0X0002, 
  ADS_UF_HOMEDIR_REQUIRED = 0X0008, 
  ADS_UF_LOCKOUT = 0X0010, 
  ADS_UF_PASSWD_NOTREQD = 0X0020, 
  ADS_UF_PASSWD_CANT_CHANGE = 0X0040, 
  ADS_UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED = 0X0080, 
  ADS_UF_TEMP_DUPLICATE_ACCOUNT = 0X0100, 
  ADS_UF_NORMAL_ACCOUNT = 0X0200, 
  ADS_UF_INTERDOMAIN_TRUST_ACCOUNT = 0X0800, 
  ADS_UF_WORKSTATION_TRUST_ACCOUNT = 0X1000, 
  ADS_UF_SERVER_TRUST_ACCOUNT = 0X2000, 
  ADS_UF_DONT_EXPIRE_PASSWD = 0X10000, 
  ADS_UF_MNS_LOGON_ACCOUNT = 0X20000, 
  ADS_UF_SMARTCARD_REQUIRED = 0X40000, 
  ADS_UF_TRUSTED_FOR_DELEGATION = 0X80000, 
  ADS_UF_NOT_DELEGATED = 0X100000, 
  ADS_UF_USE_DES_KEY_ONLY = 0x200000, 
  ADS_UF_DONT_REQUIRE_PREAUTH = 0x400000, 
  ADS_UF_PASSWORD_EXPIRED = 0x800000, 
  ADS_UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION = 0x1000000
} ADS_USER_FLAG_ENUM;
  

デフォルトでは、0x201 です。つまり、ADS_UF_SCRIPTADS_UF_NORMAL_ACCOUNT が設定されるのみです。それに対して、通常の運用ユーザは 0x10201 となります。つまり、ADS_UF_DONT_EXPIRE_PASSWD が追加されます。

  
Set obj = GetObject("WinNT://NT")
Set objUser = obj.Create( "User", "TestUser002" )
Call objUser.Put( "UserFlags", &H10201 )
Call objUser.SetInfo()
  



  パスワードの設定

パスワードは、IADsUser インターフェィスの SetPassword メソッドで設定します。パスワードの変更もこのインターフェイスの ChangePassword メソッドを使用します

  
Set obj = GetObject("WinNT://NT")
Set objUser = obj.Create( "User", "TestUser003" )
Call objUser.Put( "UserFlags", &H10201 )
Call objUser.SetPassword( "MyPassword" )
Call objUser.SetInfo()
  



  ユーザを特定のグループに参加させる

Group オブジェクトを取得して IADsGroup インターフェイスより Add メソッドで追加します

  
Set obj = GetObject("WinNT://NT/Administrators,group")
obj.Add ("WinNT://NT/TestUser003,user")
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ