Creates and enables a computer account in Active Directory, which a specific, authenticated user can use to add his or her workstation to the domain.
Option ExplicitDim strComputer, strComputerUserDim objRootDSE, objContainer, objComputerDim objSecurityDescriptor, objDACLDim objACE1, objACE2, objACE3, objACE4, objACE5Dim objACE6, objACE7, objACE8, objACE9strComputer = "atl-pro-002"strComputerUser = "fabrikam\lewjudy"' ADS_USER_FLAG_ENUMConst ADS_UF_PASSWD_NOTREQD = &h0020Const ADS_UF_WORKSTATION_TRUST_ACCOUNT = &h1000' ADS_ACETYPE_ENUMConst ADS_ACETYPE_ACCESS_ALLOWED = &h0Const ADS_ACETYPE_ACCESS_ALLOWED_OBJECT = &h5' ADS_FLAGTYPE_ENUMConst ADS_FLAG_OBJECT_TYPE_PRESENT = &h1' ADS_RIGHTS_ENUMConst ADS_RIGHT_GENERIC_READ = &h80000000Const ADS_RIGHT_DS_SELF = &h8Const ADS_RIGHT_DS_WRITE_PROP = &h20Const ADS_RIGHT_DS_CONTROL_ACCESS = &h100'controlAccessRight rightsGuid valuesConst ALLOWED_TO_AUTHENTICATE = "{68B1D179-0D15-4d4f-AB71-46152E79A7BC}"Const RECEIVE_AS = "{AB721A56-1E2f-11D0-9819-00AA0040529B}"Const SEND_AS = "{AB721A54-1E2f-11D0-9819-00AA0040529B}"Const USER_CHANGE_PASSWORD = "{AB721A53-1E2f-11D0-9819-00AA0040529b}"Const USER_FORCE_CHANGE_PASSWORD = "{00299570-246D-11D0-A768-00AA006E0529}"Const USER_ACCOUNT_RESTRICTIONS = "{4C164200-20C0-11D0-A768-00AA006E0529}"Const VALIDATED_DNS_HOST_NAME = "{72E39547-7B18-11D1-ADEF-00C04FD8D5CD}"Const VALIDATED_SPN = "{F3A64788-5306-11D1-A9C5-0000F80367C1}"Set objRootDSE = GetObject("LDAP://rootDSE")Set objContainer = GetObject("LDAP://cn=Computers," & _objRootDSE.Get("defaultNamingContext"))Set objComputer = objContainer.Create("Computer", "cn=" & strComputer)objComputer.Put "sAMAccountName", strComputer & "$"objComputer.Put "userAccountControl", _ADS_UF_PASSWD_NOTREQD Or ADS_UF_WORKSTATION_TRUST_ACCOUNTobjComputer.SetInfoSet objSecurityDescriptor = objComputer.Get("ntSecurityDescriptor")Set objDACL = objSecurityDescriptor.DiscretionaryAclSet objACE1 = CreateObject("AccessControlEntry")objACE1.Trustee = strComputerUserobjACE1.AccessMask = ADS_RIGHT_GENERIC_READobjACE1.AceFlags = 0objACE1.AceType = ADS_ACETYPE_ACCESS_ALLOWED' objACE2 through objACE6: Extended RightsSet objACE2 = CreateObject("AccessControlEntry")objACE2.Trustee = strComputerUserobjACE2.AccessMask = ADS_RIGHT_DS_CONTROL_ACCESSobjACE2.AceFlags = 0objACE2.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECTobjACE2.Flags = ADS_FLAG_OBJECT_TYPE_PRESENTobjACE2.ObjectType = ALLOWED_TO_AUTHENTICATESet objACE3 = CreateObject("AccessControlEntry")objACE3.Trustee = strComputerUserobjACE3.AccessMask = ADS_RIGHT_DS_CONTROL_ACCESSobjACE3.AceFlags = 0objACE3.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECTobjACE3.Flags = ADS_FLAG_OBJECT_TYPE_PRESENTobjACE3.ObjectType = RECEIVE_ASSet objACE4 = CreateObject("AccessControlEntry")objACE4.Trustee = strComputerUserobjACE4.AccessMask = ADS_RIGHT_DS_CONTROL_ACCESSobjACE4.AceFlags = 0objACE4.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECTobjACE4.Flags = ADS_FLAG_OBJECT_TYPE_PRESENTobjACE4.ObjectType = SEND_ASSet objACE5 = CreateObject("AccessControlEntry")objACE5.Trustee = strComputerUserobjACE5.AccessMask = ADS_RIGHT_DS_CONTROL_ACCESSobjACE5.AceFlags = 0objACE5.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECTobjACE5.Flags = ADS_FLAG_OBJECT_TYPE_PRESENTobjACE5.ObjectType = USER_CHANGE_PASSWORDSet objACE6 = CreateObject("AccessControlEntry")objACE6.Trustee = strComputerUserobjACE6.AccessMask = ADS_RIGHT_DS_CONTROL_ACCESSobjACE6.AceFlags = 0objACE6.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECTobjACE6.Flags = ADS_FLAG_OBJECT_TYPE_PRESENTobjACE6.ObjectType = USER_FORCE_CHANGE_PASSWORD' objACE7: Property SetsSet objACE7 = CreateObject("AccessControlEntry")objACE7.Trustee = strComputerUserobjACE7.AccessMask = ADS_RIGHT_DS_WRITE_PROPobjACE7.AceFlags = 0objACE7.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECTobjACE7.Flags = ADS_FLAG_OBJECT_TYPE_PRESENTobjACE7.ObjectType = USER_ACCOUNT_RESTRICTIONS' objACE8 and objACE9: Validated RightsSet objACE8 = CreateObject("AccessControlEntry")objACE8.Trustee = strComputerUserobjACE8.AccessMask = ADS_RIGHT_DS_SELFobjACE8.AceFlags = 0objACE8.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECTobjACE8.Flags = ADS_FLAG_OBJECT_TYPE_PRESENTobjACE8.ObjectType = VALIDATED_DNS_HOST_NAMESet objACE9 = CreateObject("AccessControlEntry")objACE9.Trustee = strComputerUserobjACE9.AccessMask = ADS_RIGHT_DS_SELFobjACE9.AceFlags = 0objACE9.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECTobjACE9.Flags = ADS_FLAG_OBJECT_TYPE_PRESENTobjACE9.ObjectType = VALIDATED_SPNobjDACL.AddAce objACE1objDACL.AddAce objACE2objDACL.AddAce objACE3objDACL.AddAce objACE4objDACL.AddAce objACE5objDACL.AddAce objACE6objDACL.AddAce objACE7objDACL.AddAce objACE8objDACL.AddAce objACE9objSecurityDescriptor.DiscretionaryAcl = objDACLobjComputer.Put "ntSecurityDescriptor", objSecurityDescriptorobjComputer.SetInfo
This is a VB Script, this can be used by saving the file in .vbs file