Chapter 3: Container Management Code
Enumerating Domains Using a VBScript Active Server Page
Dim NameSpace Dim Domain Set NameSpace = GetObject("WinNT:") For Each Domain in Namespace Response.Write Domain.Name & "<BR>" Next
Querying AutoUnlockInterval Using a VBScript Active Server Page
Dim Domain Dim DomainName DomainName = "Domain_To_Manage" Set Domain = GetObject("WinNT://" & DomainName) Response.Write Domain.AutoUnlockInterval
Setting a New Value for AutoUnlockInterval Using a VBScript Active Server Page
Dim Domain Dim DomainName Dim NewValue DomainName = "Domain_To_Manage" Set Domain = GetObject("WinNT://" & DomainName) NewValue = 3600 Domain.AutoUnlockInterval = NewValue Domain.SetInfo Response.Write Err.Number
Querying LockoutObservationInterval Using a VBScript Active Server Page
Dim Domain Dim DomainName DomainName = "Domain_To_Manage" Set Domain = GetObject("WinNT://" & DomainName) Response.Write Domain.LockOutObservationInterval
Setting a New Value for LockoutObservationInterval Using a VBScript Active Server Page
Dim Domain Dim DomainName Dim NewValue DomainName = "Domain_To_Manage" Set Domain = GetObject("WinNT://" & DomainName) NewValue = 1800 Domain.LockoutObservationInterval = NewValue Domain.SetInfo
Querying MaxBadPasswordsAllowed Using a VBScript Active Server Page
Dim Domain Dim DomainName DomainName = "Domain_To_Manage" Set Domain = GetObject("WinNT://" & DomainName) Response.Write Domain.MaxBadPasswordsAllowed
Setting a New Value for MaxBadPasswordsAllowed Using a VBScript Active Server Page
Dim Domain Dim DomainName Dim NewValue DomainName = "Domain_To_Manage" Set Domain = GetObject("WinNT://" & DomainName) NewValue = 5 Domain.MaxBadPasswordsAllowed = NewValue Domain.SetInfo
Querying MaxPasswordAge Using a VBScript Active Server Page
Dim Domain Dim DomainName DomainName = "Domain_To_Manage" Set Domain = GetObject("WinNT://" & DomainName) Response.Write ((Domain.MaxPasswordAge) / 86400)
Setting a New Value for MaxPasswordAge Using a VBScript Active Server Page
Dim Domain Dim DomainName Dim NewValue DomainName = "Domain_Name_To_Manage" Set Domain = GetObject("WinNT://" & DomainName) NewValue = 2592000 Domain.MaxPasswordAge = NewValue Domain.SetInfo
Querying MinPasswordAge Using a VBScript Active Server Page
Dim Domain Dim DomainName DomainName = "Domain_To_Manage" Set Domain = GetObject("WinNT://" & DomainName) Response.Write ((Domain.MinPasswordAge) / 86400)
Setting a New Value for MinPasswordAge Using a VBScript Active Server Page
Dim Domain Dim DomainName Dim NewValue DomainName = "Domain_To_Manage" Set Domain = GetObject("WinNT://" & DomainName) NewValue = 0 Domain.MinPasswordAge = NewValue Domain.SetInfo
Querying MinPasswordLength Using a VBScript Active Server Page
Dim Domain Dim DomainName DomainName = "Domain_To_Manage" Set Domain = GetObject("WinNT://" & DomainName) Response.Write Domain.MinPasswordLength
Setting a New Value for MinPasswordLength Using a VBScript Active Server Page
Dim Domain Dim DomainName Dim NewValue DomainName = "Domain_To_Manage" Set Domain = GetObject("WinNT://" & DomainName) NewValue = 7 Domain.MinPasswordLength = NewValue Domain.SetInfo
Querying PasswordHistoryLength Using a VBScript Active Server Page
Dim Domain Dim DomainName DomainName = "Domain_To_Manage" Set Domain = GetObject("WinNT://"& DomainName) Response.Write Domain.PasswordHistoryLength
Setting a New Value for PasswordHistoryLength Using a VBScript Active Server Page
Dim Domain Dim DomainName Dim NewValue DomainName = "Domain_To_Manage" Set Domain = GetObject("WinNT://" & DomainName) NewValue = 3 Domain.PasswordHistoryLength = NewValue Domain.SetInfo
Enumerating a Generic Container Using a VBScript Active Server Page
Dim Container Dim ContainerName Dim LeafObject ContainerName = "Container_Name" Set Container = GetObject("WinNT://" & ContainerName) For Each LeafObject in Container Response.Write LeafObject.Name & "<BR>" Next
Enumerating User Accounts Using a VBScript Active Server Page
Dim Container Dim ContainerName Dim User ContainerName = "Domain_To_Manage" Set Container = GetObject("WinNT://" & ContainerName) Container.Filter = Array("User") For Each User in Container Response.Write User.Name & "<BR>" Next
Enumerating Computer Accounts Using a VBScript Active Server Page
Dim Container Dim ContainerName Dim Computer ContainerName = "Domain_To_Manage" Set Container = GetObject("WinNT://" & ContainerName) Container.Filter = Array("Computer") For Each Computer in Container Response.Write Computer.Name & "<BR>" Next
Enumerating Groups Using a VBScript Active Server Page
Dim Container Dim ContainerName Dim Group ContainerName = "Domain_To_Manage" Set Container = GetObject("WinNT://" & ContainerName) Container.Filter = Array("Group") For Each Group in Container Response.Write Group.Name & "<BR>" Next
Adding a New Computer Account Using a VBScript Active Server Page
Dim Container Dim ContainerName Dim ComputerAccount Dim Computer Dim NewComputer ContainerName = "Domain_To_Manage" Set Container = GetObject("WinNT://" & ContainerName) NewComputer = "Computer_Account_To_Create" Set Computer = Container.Create("Computer", UCase(NewComputer)) Computer.SetInfo Set ComputerAccount = GetObject("WinNT://" & ContainerName & "/" & NewComputer & "$,user") ComputerAccount.Put "UserFlags", (ComputerAccount.Get("UserFlags") Or &H1000) ComputerAccount.SetPassword (LCase(NewComputer)) ComputerAccount.SetInfo
Removing a Computer Account Using a VBScript Active Server Page
Dim Container Dim ContainerName Dim ComputerToRemove ContainerName = "Domain_To_Manage" Set Container = GetObject("WinNT://" & ContainerName) ComputerToRemove = "Computer_To_Remove" Call Container.Delete("Computer", ComputerToRemove)
Adding a New User Account Using a VBScript Active Server Page
Dim Container Dim ContainerName Dim User Dim NewUser ContainerName = "Domain_To_Manage" NewUser = "User_Account_To_Create" Set Container = GetObject("WinNT:// " & ContainerName) Set User = Container.Create("User", NewUser) User.SetInfo
Removing a User Account Using a VBScript Active Server Page
Dim Container Dim ContainerName Dim UserToRemove ContainerName = "Domain_To_Manage" UserToRemove = "User_Account_To_Remove" Set Container = GetObject("WinNT://" & ContainerName) Call Container.Delete("User", UserToRemove)
Renaming a User Account Using a VBScript Active Server Page
Dim Container Dim ContainerName Dim OldName Dim User Dim NewUser Dim NewName OldName = "Old_Account_Name" NewName = "New_Account_Name" ContainerName = "Domain_To_Manage" Set Container = GetObject("WinNT://" & ContainerName) Set User = GetObject("WinNT://" & ContainerName & "/" & OldName & ",user") Set NewUser = Container.MoveHere(User.ADsPath, NewName) Set User = Nothing
Adding a New Local Group Using a VBScript Active Server Page
Dim Container Dim ContainerName Dim Group Dim NewGroup ContainerName = "Domain_To_Manage" NewGroup = "Requested_Groupname" Set Container = GetObject("WinNT:// " & ContainerName) Set Group = Container.Create("Group", NewGroup) Group.Put "groupType", ADS_GROUP_TYPE_LOCAL_GROUP Group.SetInfo
Adding a New Global Group Using a VBScript Active Server Page
Dim Container Dim ContainerName Dim Group Dim NewGroup ContainerName = "Domain_To_Manage" NewGroup = "Requested_Groupname" Set Container = GetObject("WinNT://" & ContainerName) Set Group = Container.Create("Group", NewGroup) Group.Put "groupType", ADS_GROUP_TYPE_GLOBAL_GROUP Group.SetInfo
Removing a Group Using a VBScript Active Server Page
Dim Container Dim ContainerName Dim GroupToRemove ContainerName = "Domain_To_Manage" GroupToRemove = "Group_To_Remove" Set Container = GetObject("WinNT://" & ContainerName) Call Container.Delete("Group", GroupToRemove)