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>
   
门店简称:&nbsp;&nbsp;&nbsp<input type="text" name="StoreName" size="30"><br>
门店编号:&nbsp;&nbsp;&nbsp<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>

posted on 2007-10-26 22:41  大智弱驴  阅读(903)  评论(0编辑  收藏  举报

导航