给朋友公司创建的一个AD管理的脚本,主要在Carrefour China根OU下创建门店编号的子OU,在子OU下再创建子子OU,然后创建域本地组和全局组,然后进行组的嵌套。
======将下面的内容保存为.HTA文档(不包含这一行)=========
SingleInstance = "yes"
ShowInTaskbar = "yes"
WindowState = "normal"
Caption = "yes"
Sysmenu = "yes"
MaximizeButton = "no"
Border = "dialog"
BorderStyle = "normal"
InnerBorder = "yes"
Scroll = "no"
ContextMenu = "no"
Selection = "no" />
Const strAbout = "1.0 (2007年8月26日)"
Const strCopyr = "上海赛卫思 许震 / xz1215@263.net"
Const strHelp = "请以域管理员身份运行本脚本"
Window.resizeTo 360, 240
Sub RunScript
'On Error Resume Next
Const E_RootOU_Not_Found = 424
Const ADS_PROPERTY_APPEND = 3
Const ADS_GROUP_TYPE_LOCAL_GROUP = &h4
Const ADS_GROUP_TYPE_SECURITY_ENABLED = &h80000000
'获得门店简称XXXX和编号YYY,如果用户没有输入就提示错误信息并退出
If StoreName.value="" Then
InfoArea.InnerHTML="Err:没有输入门店简称!"
Exit Sub
Else
XXXX=UCase(StoreName.value)
End If
If StoreNum.value="" Then
InfoArea.InnerHTML="Err:没有输入门店编号!"
Exit Sub
Else
YYY= UCase(StoreNum.value)
End If
'设定OU名称
StoreOU="OU=" & XXXX & YYY
'设定根OU为chdom.corp\Carrefour China
RootOU="OU=Carrefour China"
DomainDN="DC=serviceit,DC=local"
Set bjRootOU = GetObject("LDAP://" & RootOU & "," & DomainDN)
If err.number <>0 Then
InfoArea.InnerHTML="域名或根OU不存在,请修改脚本!"
err.Clear
Exit Sub
End If
Set bjStoreOU = objRootOU.Create("OrganizationalUnit", StoreOU)
objStoreOU.SetInfo
If err.number <>0 Then
InfoArea.InnerHTML= "该OU已经存在,请检查AD对象或输入信息!"
Exit Sub
Else
InfoArea.InnerHTML= XXXX & YYY & "门店OU创建成功,正在创建子OU..."
End If
'创建子OU
Set bjStoreRootOU = GetObject("LDAP://" & StoreOU & "," & RootOU & "," & DomainDN)
Set objOU1 = objStoreRootOU.Create("OrganizationalUnit", "OU=Groups Global")
objOU1.SetInfo
Set objOU2 = objStoreRootOU.Create("OrganizationalUnit", "OU=Groups Local")
objOU2.SetInfo
Set objOU3 = objStoreRootOU.Create("OrganizationalUnit", "OU=Servers")
objOU3.SetInfo
Set objOU4 = objStoreRootOU.Create("OrganizationalUnit", "OU=Services Account")
objOU4.SetInfo
Set objOU5 = objStoreRootOU.Create("OrganizationalUnit", "OU=Users")
objOU5.SetInfo
Set objOU6 = objStoreRootOU.Create("OrganizationalUnit", "OU=Workstations")
objOU6.SetInfo
'子OU创建完成
'在Groups Global OU下创建7个全局组
Set bjGroupGlobleOU = GetObject("LDAP://OU=Groups Global," & StoreOU & "," & RootOU & "," & DomainDN)
Set objGroupGloble1 = objGroupGlobleOU.Create("Group", "CN=gg" & XXXX & "_AccountOperators")
objGroupGloble1.Put "sAMAccountName", "gg" & XXXX & "_AccountOperators"
objGroupGloble1.SetInfo
Set objGroupGloble2 = objGroupGlobleOU.Create("Group", "CN=gg" & XXXX & "_HelpDesk")
objGroupGloble2.Put "sAMAccountName", "gg" & XXXX & "_HelpDesk"
objGroupGloble2.SetInfo
Set objGroupGloble3 = objGroupGlobleOU.Create("Group", "CN=gg" & XXXX & "_LocalAdmins")
objGroupGloble3.Put "sAMAccountName", "gg" & XXXX & "_LocalAdmins"
objGroupGloble3.SetInfo
Set objGroupGloble4 = objGroupGlobleOU.Create("Group", "CN=gg" & XXXX & "_ServerAdmins")
objGroupGloble4.Put "sAMAccountName", "gg" & XXXX & "_ServerAdmins"
objGroupGloble4.SetInfo
Set objGroupGloble5 = objGroupGlobleOU.Create("Group", "CN=gg" & XXXX & "_WorkstationAdmins")
objGroupGloble5.Put "sAMAccountName", "gg" & XXXX & "_WorkstationAdmins"
objGroupGloble5.SetInfo
Set objGroupGloble6 = objGroupGlobleOU.Create("Group", "CN=gg" & XXXX & YYY)
objGroupGloble6.Put "sAMAccountName", "gg" & XXXX & YYY
objGroupGloble6.SetInfo
Set objGroupGloble7 = objGroupGlobleOU.Create("Group", "CN=gg" & XXXX & "EnaUSB")
objGroupGloble7.Put "sAMAccountName", "gg" & XXXX & "EnaUSB"
objGroupGloble7.SetInfo
'Groups Global OU中全局组创建完成
'在Groups Local OU中创建6个域本地组
Set bjGroupLocalOU = GetObject("LDAP://OU=Groups Local," & StoreOU & "," & RootOU & "," & DomainDN)
Set objGroupLocal1 = objGroupLocalOU.Create("Group", "CN=lg" & XXXX & "_AccountOperators")
objGroupLocal1.Put "sAMAccountName", "lg" & XXXX & "_AccountOperators"
objGroupLocal1.Put "groupType", ADS_GROUP_TYPE_LOCAL_GROUP Or ADS_GROUP_TYPE_SECURITY_ENABLED
objGroupLocal1.SetInfo
Set objGroupLocal2 = objGroupLocalOU.Create("Group", "CN=lg" & XXXX & "_HelpDesk")
objGroupLocal2.Put "sAMAccountName", "lg" & XXXX & "_HelpDesk"
objGroupLocal2.Put "groupType", ADS_GROUP_TYPE_LOCAL_GROUP Or ADS_GROUP_TYPE_SECURITY_ENABLED
objGroupLocal2.SetInfo
Set objGroupLocal3 = objGroupLocalOU.Create("Group", "CN=lg" & XXXX & "_LocalAdmins")
objGroupLocal3.Put "sAMAccountName", "lg" & XXXX & "_LocalAdmins"
objGroupLocal3.Put "groupType", ADS_GROUP_TYPE_LOCAL_GROUP Or ADS_GROUP_TYPE_SECURITY_ENABLED
objGroupLocal3.SetInfo
Set objGroupLocal4 = objGroupLocalOU.Create("Group", "CN=lg" & XXXX & "_ServerAdmins")
objGroupLocal4.Put "sAMAccountName", "lg" & XXXX & "_ServerAdmins"
objGroupLocal4.Put "groupType", ADS_GROUP_TYPE_LOCAL_GROUP Or ADS_GROUP_TYPE_SECURITY_ENABLED
objGroupLocal4.SetInfo
Set objGroupLocal5 = objGroupLocalOU.Create("Group", "CN=lg" & XXXX & "_WorkstationAdmins")
objGroupLocal5.Put "sAMAccountName", "lg" & XXXX & "_WorkstationAdmins"
objGroupLocal5.Put "groupType", ADS_GROUP_TYPE_LOCAL_GROUP Or ADS_GROUP_TYPE_SECURITY_ENABLED
objGroupLocal5.SetInfo
Set objGroupLocal6 = objGroupLocalOU.Create("Group", "CN=lg" & XXXX & YYY)
objGroupLocal6.Put "sAMAccountName", "lg" & XXXX & YYY
objGroupLocal6.Put "groupType", ADS_GROUP_TYPE_LOCAL_GROUP Or ADS_GROUP_TYPE_SECURITY_ENABLED
objGroupLocal6.SetInfo
'在Groups Local OU中创建域本地组完成
'在Services Account OU中创建SMSRemoteControlGroup全局组
Set bjServicesAccountOU = GetObject("LDAP://OU=Services Account," & StoreOU & "," & RootOU & "," & DomainDN)
Set objGroupGloble8 = objServicesAccountOU.Create("Group", "CN=gg" & XXXX & "_SMSRemoteControlGroup")
objGroupGloble8.Put "sAMAccountName", "gg" & XXXX & "_SMSRemoteControlGroup"
objGroupGloble8.SetInfo
'在Services Account OU中创建SMSRemoteControlGroup全局组完成
'将全局组添加到本地组中
Set bjAccountOperatorsGroup = GetObject("LDAP://CN=lg" & XXXX & "_AccountOperators,OU=Groups Local," _
& StoreOU & "," & RootOU & "," & DomainDN)
objAccountOperatorsGroup.PutEx ADS_PROPERTY_APPEND, "member", array("CN=gg" & XXXX & "_AccountOperators,OU=Groups Global," & StoreOU & "," & RootOU & "," & DomainDN)
objAccountOperatorsGroup.SetInfo
Set bjHelpDeskGroup = GetObject("LDAP://CN=lg" & XXXX & "_HelpDesk,OU=Groups Local," _
& StoreOU & "," & RootOU & "," & DomainDN)
objHelpDeskGroup.PutEx ADS_PROPERTY_APPEND, "member", array("CN=gg" & XXXX & "_HelpDesk,OU=Groups Global," & StoreOU & "," & RootOU & "," & DomainDN)
objHelpDeskGroup.SetInfo
Set bjLocalAdminsGroup = GetObject("LDAP://CN=lg" & XXXX & "_LocalAdmins,OU=Groups Local," _
& StoreOU & "," & RootOU & "," & DomainDN)
objLocalAdminsGroup.PutEx ADS_PROPERTY_APPEND, "member", array("CN=gg" & XXXX & "_LocalAdmins,OU=Groups Global," & StoreOU & "," & RootOU & "," & DomainDN)
objLocalAdminsGroup.SetInfo
Set bjServerAdminsGroup = GetObject("LDAP://CN=lg" & XXXX & "_ServerAdmins,OU=Groups Local," _
& StoreOU & "," & RootOU & "," & DomainDN)
objServerAdminsGroup.PutEx ADS_PROPERTY_APPEND, "member", array("CN=gg" & XXXX & "_ServerAdmins,OU=Groups Global," & StoreOU & "," & RootOU & "," & DomainDN)
objServerAdminsGroup.SetInfo
Set bjWorkStationAdminsGroup = GetObject("LDAP://CN=lg" & XXXX & "_WorkStationAdmins,OU=Groups Local," _
& StoreOU & "," & RootOU & "," & DomainDN)
objWorkStationAdminsGroup.PutEx ADS_PROPERTY_APPEND, "member", array("CN=gg" & XXXX & "_WorkStationAdmins,OU=Groups Global," & StoreOU & "," & RootOU & "," & DomainDN)
objWorkStationAdminsGroup.SetInfo
Set bjXXXXYYYGroup = GetObject("LDAP://CN=lg" & XXXX & YYY & ",OU=Groups Local," _
& StoreOU & "," & RootOU & "," & DomainDN)
objXXXXYYYGroup.PutEx ADS_PROPERTY_APPEND, "member", array("CN=gg" & XXXX & YYY & ",OU=Groups Global," & StoreOU & "," & RootOU & "," & DomainDN)
objXXXXYYYGroup.SetInfo
'全局组添加到域本地组完成
End Sub
Sub setx(t)
Dim obj : Set bj = window.event.srcElement
If t = "" Then
obj.style.color = "gray"
obj.style.cursor = "default"
Else
obj.style.color = "darkblue"
obj.style.cursor = "hand"
End If
footer.innerHTML = t
End Sub
AD管理脚本
输入门店简称,如SHNX;输入门店号,如145
确认无误后点击运行按钮
门店简称:  
门店编号:  
信息:无
版本 |
作者 |
帮助 |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23034/viewspace-246597/ ,如需转载,请注明出处,否则将追究法律责任。