J'ai un script HTA pour la récupération d'informations sur les membres du groupe. Je viens de commencer à apprendre HTA et essayé de mon mieux de modifier pour adapter mon exigenceHTA to Script pour parcourir le nom du groupe de sécurité AD et obtenir le chemin LDAP
Mes Scripts fait le ci-dessous:
J'ai une unité d'organisation statique nommée OU = MyDepartment, DC = org, DC = dev, DC = lab, DC = net
Et tous les groupes AD requis/ciblés seront situés dans l'unité d'organisation ci-dessus appelée MyDepartment. A partir du script HTA, je peux sélectionner le nom du groupe AD requis. Lorsque j'exécute le fichier HTA, l'attribut "adminDescription" est mis à jour dans Active Directory à l'aide de quelque chose que j'ai codé en dur dans le script, et cela fonctionne. Cependant, je cherche à mettre à jour basé sur la valeur de boîte de texte que l'utilisateur peut entrer une valeur.
Dans le script ci-dessous, les lignes s'exécutent pour mettre à jour l'attribut AD requis, c'est-à-dire "adminDescription" à "Scientist021".
Const ADS_PROPERTY_UPDATE = 2
Set objGroup = GetObject("LDAP://" & lst_groupfilter.Value)
objGroup.Put "adminDescription", "Scientist021"
objGroup.SetInfo
Actuellement, j'ai configuré pour mettre à jour cette valeur lorsque cliquez sur le bouton Obtenir membres (je voulais même Renommez-le nom du bouton « UpdateValues ».
Je coincé à cet endroit, je voulais mettre valeur « Scientist021 » ou quoi que dans le texte utilisateur peut taper dans une zone de texte quelqu'un peut-il me guider dans cette s'il vous plaît. script peut être téléchargé à partir here.
<Html>
<Head>
<Title>Set Group AdminDescription</Title>
<HTA:Application
Caption = Yes
Border = Thick
ShowInTaskBar = Yes
SingleInstance = Yes
MaximizeButton = Yes
MinimizeButton = Yes>
<script Language = VBScript>
Const ADS_PROPERTY_UPDATE = 2
Sub Window_OnLoad
intWidth = 800
intHeight = 600
Me.ResizeTo intWidth, intHeight
Me.MoveTo ((Screen.Width/2) - (intWidth/2)),((Screen.Height/2) - (intHeight/2))
lst_members.Style.Width = 500
'Set objRootDSE = GetObject("LDAP://RootDSE")
Set objRootDSE = GetObject("LDAP://OU=MyDepartment,DC=org,DC=dev,DC=lab,DC=net")
strBaseConnString = objRootDSE.Get("distinguishedName")
Set objOULevel = GetObject("LDAP://" & strBaseConnString)
EnumerateGroups strBaseConnString
Show_Group_Selection
End Sub
Sub EnumerateGroups(strDNSDomain)
Const ADS_SCOPE_SUBTREE = 2
Const adVarChar = 200
Const MaxCharacters = 255
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = "SELECT Name, distinguishedName FROM 'LDAP://" & strDNSDomain & "' WHERE objectClass='group'"
Set objRecordSet = objCommand.Execute
Set objDataList = CreateObject("ADOR.Recordset")
objDataList.Fields.Append "name", adVarChar, MaxCharacters
objDataList.Fields.Append "distinguishedName", adVarChar, MaxCharacters
objDataList.Open
While Not objRecordSet.EOF
objDataList.AddNew
objDataList("name") = objRecordSet.Fields("name").Value
objDataList("distinguishedName") = objRecordSet.Fields("distinguishedName").Value
objDataList.Update
objRecordSet.MoveNext
Wend
objRecordSet.Close
objDataList.Sort = "name"
objDataList.MoveFirst
While Not objDataList.EOF
Set objActiveOption = Document.CreateElement("OPTION")
objActiveOption.Text = objDataList.Fields("name").Value
objActiveOption.Value = objDataList.Fields("distinguishedName").Value
lst_GroupFilter.Add objActiveOption
objDataList.MoveNext
Wend
objDataList.Close
End Sub
Sub Show_Group_Selection
span_GroupFilter.InnerHTML = lst_GroupFilter.Value
End Sub
Sub Default_Buttons
If Window.Event.KeyCode = 13 Then
btn_run.Click
End If
End Sub
Sub Exit_HTA
Window.Close
End Sub
Sub Get_Members
'Const adVarChar = 200
'Const MaxCharacters = 255
Const ADS_PROPERTY_UPDATE = 2
Set objGroup = GetObject("LDAP://" & lst_groupfilter.Value)
objGroup.Put "adminDescription", "Scientist021"
objGroup.SetInfo
'Clear_Members
'Set objGroup = GetObject("LDAP://" & lst_groupfilter.Value)
'Set objDataList = CreateObject("ADOR.Recordset")
'objDataList.Fields.Append "name", adVarChar, MaxCharacters
'objDataList.Fields.Append "distinguishedName", adVarChar, MaxCharacters
'objDataList.Open
'For Each objObject In objGroup.Members
' objDataList.AddNew
' objDataList("name") = objObject.cn
' objDataList("distinguishedName") = objObject.distinguishedName
' objDataList.Update
'Next
'objDataList.Sort = "name"
'If Not objDataList.BOF Then objDataList.MoveFirst
'While Not objDataList.EOF
' Set objMember = Document.CreateElement("OPTION")
' objMember.Text = objDataList.Fields("name").Value
' objMember.Value = objDataList.Fields("distinguishedName").Value
' lst_members.Add objMember
' objDataList.MoveNext
'Wend
'objDataList.Close
End Sub
Sub ExporT_To_TXT
If Mid(document.location, 6, 3) = "///" Then
strHTAPath = Mid(Replace(Replace(document.location, "%20", " "), "/", "\"), 9)
Else
strHTAPath = Mid(Replace(Replace(document.location, "%20", " "), "/", "\"), 6)
End If
strFileName = Left(strHTAPath, InStrRev(strHTAPath, "\")) & lst_GroupFilter.Item(lst_GroupFilter.SelectedIndex).Text & ".txt"
strFileName = InputBox("Enter file name to save as:", "Save As", strFileName)
If strFileName <> "" Then
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile(strFileName, True)
objFile.WriteLine "Group Distinguished Name: " & lst_groupfilter.Value
For Each objOption In lst_members
objFile.WriteLine objOption.Text
Next
objFile.Close
MsgBox "File saved."
End If
End Sub
</script>
<body style="background-color:#B0C4DE;" onkeypress='vbs:Default_Buttons'>
<table height="90%" width= "90%" border="0" align="center">
<tr>
<td align="center" colspan="2">
<h2>Set Group AdminDescription</h2>
</td>
</tr>
<tr>
<td>
<b>Group Filter:</b>
</td>
<td>
<select size='1' name='lst_GroupFilter' onChange='vbs:Show_Group_Selection'>
</select>
</td>
</tr>
<tr>
<td colspan=2>
<b>Group Selected:</b>   <span id='span_GroupFilter'></span>
</td>
</tr>
<tr>
<td>
<b>Members:</b>
</td>
<td>
<select size='8' name='lst_members'>
</select>
</td>
</tr>
</table>
<table width= "90%" border="0" align="center">
<tr align="center">
<td>
<button name="btn_run" id="btn_run" accessKey="G" onclick="vbs:Get_Members"><u>G</u>et Members</button>
</td>
<td>
<button name="btn_export" id="btn_export" accessKey="E" onclick="vbs:Export_To_TXT"><u>E</u>xport to TXT</button>
</td>
<td>
<button name="btn_exit" id="btn_exit" accessKey="x" onclick="vbs:Exit_HTA">E<u>x</u>it</button>
</td>
</tr>
</table>
</body>
</head>
</html>