AD管理脚本
======将下面的内容保存为.HTA文档(不包含这一行)=========
<head>
<title>AD管理</title>
<HTA:Application
ApplicationName = "AD管理"
SingleInstance = "yes"
ShowInTaskbar = "yes"
WindowState = "normal"
Caption = "yes"
Sysmenu = "yes"
MaximizeButton = "no"
Border = "dialog"
BorderStyle = "normal"
InnerBorder = "yes"
Scroll = "no"
ContextMenu = "no"
Selection = "no" />
<style>
H1{ font-family:Tahoma; font-weight:bold; font-size:18pt; color:black; text-align:left;
margin-top:2pt; margin-bottom:10pt; }
H2{ font-family:Tahoma; font-weight:bold; font-size:10pt; color:maroon; text-align:left;
margin-top:2pt; margin-bottom:2pt; }
body{ font-family:Verdana; font-weight:normal; font-size:8.5pt; background-color:#99CCFF;
margin-left:10pt; margin-rigth:2pt; margin-top:7pt; }
.hd { font-weight:bold; font-size:8pt; text-align:left; vertical-align:middle; background-color:#DDD; }
.hd2{ font-weight:bold; font-size:8pt; text-align:left; vertical-align:middle; color:gray; }
.col{ font-size:8pt; text-align:left; vertical-align:top; background-color:#EEE; }
.col2{ font-size:8pt; text-align:left; vertical-align:top; }
</style>
</head>
<script language="VBScript">
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 objRootOU = GetObject("LDAP://" & RootOU & "," & DomainDN)
If err.number <>0 Then
InfoArea.InnerHTML="域名或根OU不存在,请修改脚本!"
err.Clear
Exit Sub
End If
Set objStoreOU = 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 objStoreRootOU = 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 objGroupGlobleOU = 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 objGroupLocalOU = 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 objServicesAccountOU = 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 objAccountOperatorsGroup = 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 objHelpDeskGroup = 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 objLocalAdminsGroup = 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 objServerAdminsGroup = 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 objWorkStationAdminsGroup = 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 objXXXXYYYGroup = 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 obj = 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
</script>
<body>
<H2>AD管理脚本</H2>
输入门店简称,如SHNX;输入门店号,如145<br>
确认无误后点击运行按钮<br><br>
门店简称:  <input type="text" name="StoreName" size="30"><br>
门店编号:  <input type="text" name="StoreNum" size="30"><br>
<input id=runbutton class="button" type="button" value="运行" name="run_button" onClick="RunScript">
<br><br>
<span id=InfoArea>信息:无</span>
<br>
<hr size=1 color=silver>
<span style="color:gray">
<span onmouseover=setx(strAbout) onmouseout=setx('')>版本</span> |
<span onmouseover=setx(strCopyr) onmouseout=setx('')>作者</span> |
<span onmouseover=setx(strHelp) onmouseout=setx('')>帮助</span> |
</span>
<span style="color:darkblue" id="footer"></span>
</body>