当前位置 博文首页 > 利用VBS脚本自动创建计算机帐户的代码

    利用VBS脚本自动创建计算机帐户的代码

    作者:admin 时间:2021-02-18 21:43

    mcse注:其实这是 按照ADSI(Active Directory Services Interface:活动目录服务接口)写的程序。如果你安装了resource kit,这段代码可以用netcom这条命令进行工作,下面是netcom的一个例子: 

      NETDOM /Domain:MYDOMAIN /user:adminuser /password:apassword MEMBER MYCOMPUTER /ADD 

    复制代码 代码如下:

      ***********************

      '* Start Script

      '***********************

      Dim sComputerName, sUserOrGroup, sPath, computerContainer, rootDSE, lFlag

      Dim secDescriptor, dACL, ACE, oComputer, sPwd

      '

      '* Declare constants used in defining the default location for the

      '* machine account, flags to identify the object as a machine account,

      '* and security flags

      'Const UF_WORKSTATION_TRUST_ACCOUNT = &H1000

      Const UF_ACCOUNTDISABLE = &H2

      Const UF_PASSWD_NOTREQD = &H20

      Const ADS_GUID_COMPUTRS_CONTAINER = "aa312825768811d1aded00c04fd8d5cd"

      Const ADS_ACETYPE_ACCESS_ALLOWED = 0

      Const ADS_ACEFLAG_INHERIT_ACE = 2

      '

      '* Set the flags on this object to identify it as a machine account

      '* and determine the name. The name is used statically here, but may

      '* be determined by a command line parameter or by using an InputBox

      'lFlag = UF_WORKSTATION_TRUST_ACCOUNT Or UF_ACCOUNTDISABLE Or UF_PASSWD_NOTREQD

      sComputerName = "TestAccount"

      '

      '* Establish a path to the container in the Active Directory where

      '* the machine account will be created. In this example, this will

      '* automatically locate a domain controller for the domain, read the

      '* domain name, and bind to the default "Computers" container

      '*********************************************************************

      Set rootDSE = GetObject("LDAP://RootDSE")

      sPath = "LDAP://  Set computerContainer = GetObject(sPath)

      sPath = "LDAP://" & computerContainer.Get("distinguishedName")

      Set computerContainer = GetObject(sPath)

      ''* Here, the computer account is created. Certain attributes must

      '* have a value before calling .SetInfo to commit (write) the object

      '* to the Active Directory

      'Set oComputer = computerContainer.Create("computer", "CN=" & sComputerName)

      oComputer.Put "samAccountName", sComputerName + "$"

      oComputer.Put "userAccountControl", lFlag

      oComputer.SetInfo

      '

      '* Establish a default password for the machine account

      'sPwd = sComputerName & "$"

      sPwd = LCase(sPwd)

      oComputer.SetPassword sPwd

      ''* Specify which user or group may activate/join this computer to the

      '* domain. In this example, "MYDOMAIN" is the domain name and

      '* "JoeSmith" is the account being given the permission. Note that

      '* this is the downlevel naming convention used in this example.

      'sUserOrGroup = "MYDOMAIN\joesmith"

      ''* Bind to the Discretionary ACL on the newly created computer account

      '* and create an Access Control Entry (ACE) that gives the specified

      '* user or group full control on the machine account

      'Set secDescriptor = oComputer.Get("ntSecurityDescriptor")

      Set dACL = secDescriptor.DiscretionaryAcl

      Set ACE = CreateObject("AccessControlEntry")

      '

      '* An AccessMask of "-1" grants Full Control

      '

      ACE.AccessMask = -1

      ACE.AceType = ADS_ACETYPE_ACCESS_ALLOWED

      ACE.AceFlags = ADS_ACEFLAG_INHERIT_ACE

      ''* Grant this control to the user or group specified earlier.

      'ACE.Trustee = sUserOrGroup

      '

      '* Now, add this ACE to the DACL on the machine account

      'dACL.AddAce ACE

      secDescriptor.DiscretionaryAcl = dACL

      '

      '* Commit (write) the security changes to the machine account

      'oComputer.Put "ntSecurityDescriptor", Array(secDescriptor)

      oComputer.SetInfo

      ''* Once all parameters and permissions have been set, enable the

      '* account.

      '

      oComputer.AccountDisabled = False

      oComputer.SetInfo

      ''* Create an Access Control Entry (ACE) that gives the specified user

      '* or group full control on the machine account

      'wscript.echo "The command completed successfully."

      '*****************

      '* End Script


    js
下一篇:没有了