home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 27 / IOPROG_27.ISO / SOFT / ADSDK.ZIP / Samples / WinNT / User / vb / User.bas next >
Encoding:
BASIC Source File  |  1999-03-16  |  5.8 KB  |  192 lines

  1. Attribute VB_Name = "User"
  2. Sub Main()
  3.  
  4. '----------------------------------------------------------------------------
  5. '
  6. '  Microsoft Active Directory 2.5 Sample Code
  7. '
  8. '  Copyright (C) Microsoft Corporation, 1996 - 1999
  9. '
  10. '  File:       user.bas
  11. '
  12. '  Contents:   Creating User, Setting user's properties, Renaming and Deleting User
  13. '
  14. '----------------------------------------------------------------------------
  15.  
  16. Const UF_PASSWORD_CANT_CHANGE = &H40
  17. Const UF_DONT_EXPIRE_PASSWD = &H10000
  18.  
  19. Dim dso As IADsOpenDSObject
  20. Dim usr As IADsUser
  21.  
  22.  
  23. '--------------------------------------
  24. '--- CREATING A USER
  25. '-----------------------------------------
  26. domainName = "INDEPENDENCE"
  27. '--- Binding to a domain as currently logged on user
  28. Set dom = GetObject("WinNT://" & domainName)
  29. '--- Create user
  30. Set usr = dom.Create("user", "JSmith")
  31. usr.SetInfo
  32.  
  33.  
  34. '---------------------------------------------
  35. '--- SETTING FULLNAME AND DESCRIPTION
  36. '------------------------------------------------
  37. Set usr = GetObject("WinNT://INDEPENDENCE/jsmith,user")
  38. usr.FullName = "John Smith"
  39. usr.Description = "DSys WOSD Program Manager"
  40. usr.SetInfo
  41.  
  42. '--------------------------------------------
  43. '-- SETTING PASSWORD
  44. '---------------------------------------------
  45. Set usr = GetObject("WinNT://INDEPENDENCE/jsmith,user")
  46. usr.SetPassword "secret"
  47.  
  48. '----------------------------------------------
  49. '--- CHANGING PASSWORD
  50. '------------------------------------------------
  51. Set usr = GetObject("WinNT://INDEPENDENCE/jsmith,user")
  52. usr.ChangePassword "secret", "password"
  53.  
  54.  
  55. '----------------------------------------------------
  56. '--- MUST CHANGE PASSWORD NEXT TIME LOGGIN
  57. '----------------------------------------------------
  58. usr.Put "PasswordExpired", CLng(1)
  59. usr.SetInfo
  60.  
  61. '-- To clear this flag
  62. usr.Put "PasswordExpired", CLng(0)
  63. usr.SetInfo
  64.  
  65.  
  66.  
  67.  
  68.  
  69. '---------------------------------------------------
  70. '--- CAN NOT CHANGE PASSWORD
  71. '------------------------------------------------------
  72. Set usr = GetObject("WinNT://INDEPENDENCE/jsmith,user")
  73. usr.Put "userFlags", usr.Get("UserFlags") Or UF_PASSWORD_CANT_CHANGE
  74. usr.SetInfo
  75. '-----to clear this flag - use Xor : allow user to change his/her password
  76. usr.Put "userFlags", usr.Get("UserFlags") Xor UF_PASSWORD_CANT_CHANGE
  77. usr.SetInfo
  78.  
  79. '---------------------------------------------
  80. '---- PASSWORD NEVER EXPIRES
  81. '---------------------------------------------
  82. Set usr = GetObject("WinNT://INDEPENDENCE/jsmith,user")
  83. usr.Put "userFlags", usr.Get("UserFlags") Or UF_DONT_EXPIRE_PASSWD
  84. usr.SetInfo
  85. 'To clear this flag - use XOr
  86. usr.Put "userFlags", usr.Get("UserFlags") Xor UF_DONT_EXPIRE_PASSWD
  87. usr.SetInfo
  88.  
  89. '------------------------------------------------
  90. '--- ACCOUNT DISABLED
  91. '-------------------------------------------------
  92. Set usr = GetObject("WinNT://INDEPENDENCE/jsmith,user")
  93. usr.AccountDisabled = True 'disabled the account
  94. usr.SetInfo
  95. 'To enabled an acount
  96. usr.AccountDisabled = False 'enabled the account
  97. usr.SetInfo
  98.  
  99. '----------------------------------------------
  100. '--- ACCOUNT EXPIRATION
  101. '----------------------------------------------
  102. usr.AccountExpirationDate = Now() + 90
  103. usr.SetInfo
  104. '-- to set account expiration to never
  105. usr.AccountExpirationDate = "01/01/1970"
  106. usr.SetInfo
  107.  
  108. '-------------------------------------------------
  109. '--- ACCOUNT LOCKOUT
  110. '-------------------------------------------------
  111. Set usr = GetObject("WinNT://INDEPENDENCE/jsmith,user")
  112. usr.IsAccountLocked = False
  113. usr.SetInfo
  114.  
  115.  
  116. '-------------------------------------------------
  117. '---- LOGIN WORKSTATIONS
  118. '--------------------------------------------------
  119. Set usr = GetObject("WinNT://INDEPENDENCE/jsmith,user")
  120. usr.LoginWorkstations = Array("jupiter", "mars", "venus")
  121. usr.SetInfo
  122. ' To display workstations the user can loggon to
  123. For Each wksName In usr.LoginWorkstations
  124.    Debug.Print wksName
  125. Next
  126. ' To allow user to login for all workstation (default)
  127. usr.LoginWorkstations = vbNullString
  128. usr.SetInfo
  129.  
  130. '--------------------------------------------------------
  131. ' --- PASSWORD EXPIRATION
  132. '--------------------------------------------------------
  133. expInDay = 60&
  134. expInSec = expInDay * (3600& * 24&)
  135. Set dom = GetObject("WinNT://INDEPENDENCE")
  136. dom.Put "MaxPasswordAge", CLng(expInSec)
  137. dom.SetInfo
  138.  
  139. '--------------------------------------------------------
  140. '--- SETTING HOME DIRECTORY AND HOME DRIVE
  141. '--------------------------------------------------------
  142. Set usr = GetObject("WinNT://INDEPENDENCE/jsmith,user")
  143. usr.HomeDirectory = "UserHomeDirHere"
  144. usr.HomeDirDrive = "HomeDirDriveHere"
  145. usr.SetInfo
  146.  
  147. '--------------------------------------------------------
  148. '--- SETTING LOGIN SCRIPT
  149. '--------------------------------------------------------
  150. Set usr = GetObject("WinNT://INDEPENDENCE/jsmith,user")
  151. usr.LoginScript = "LoginScriptHere"
  152. usr.SetInfo
  153.  
  154.  
  155. '--------------------------------------------------------
  156. '--- GETTING PRIMARY GROUP ID
  157. '--------------------------------------------------------
  158. Set usr = GetObject("WinNT://INDEPENDENCE/jsmith,user")
  159. grpPrimaryID = usr.Get("PrimaryGroupID")
  160.  
  161.  
  162. '--------------------------------------------------------
  163. '--- GETTING SID
  164. '--------------------------------------------------------
  165. Set usr = GetObject("WinNT://INDEPENDENCE/jsmith,user")
  166. sid = usr.Get("objectSID")
  167. For Each element In sid
  168.    Debug.Print Hex(element)
  169. Next
  170.  
  171.  
  172. '--------------------------------------------------------
  173. '--- RENAMING A USER
  174. '--------------------------------------------------------
  175. Set dom = GetObject("WinNT://INDEPENDENCE")
  176. Set usr = dom.MoveHere("WinNT://INDEPENDENCE/jsmith,user", "jjohnson")
  177. usr.FullName = "Jane Johnson"
  178. usr.SetInfo
  179.  
  180.  
  181.  
  182.  
  183. '--------------------------------------------------------
  184. '--- DELETING A USER
  185. '--------------------------------------------------------
  186. Set dom = GetObject("WinNT://INDEPENDENCE")
  187. dom.Delete "user", "jjohnson"
  188.  
  189.  
  190.  
  191. End Sub
  192.