分享
 
 
 

VBS脚本自动创建计算机帐户

王朝vb·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

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://

sPath = sPath + ","

sPath = sPath + rootDSE.Get("defaultNamingContext")

sPath = sPath +""

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 = "MYDOMAINjoesmith"

''* 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

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有