グループメンバーシップ情報取得のためのHTAスクリプトがあります。私は= OU = MyDepartment、DC = ORG、DC = DEV、DC名前付き静的OUを持ってHTAをスクリプト化してADセキュリティグループ名を参照し、LDAPパスを取得する
:私はちょうど下記んHTAを学習し始め、私の要件
私のスクリプトに合わせて修正するために私の最善を試してみましたラボ、DC =ネット
すべての必須/対象ADグループは、MyDepartmentというOUの上に配置されます。
HTAスクリプトから、必要なADグループ名を選択できます。
私はHTAファイルを実行すると、Active Directory内の "adminDescription"属性をスクリプト内でハードコードされたものに更新し、動作します。ただし、ユーザーが値を入力できるテキストボックスの値に基づいて更新を検討しています。
以下のスクリプトでは、必要なAD属性「adminDescription」を「Scientist021」に更新するために実行されています。
Const ADS_PROPERTY_UPDATE = 2
Set objGroup = GetObject("LDAP://" & lst_groupfilter.Value)
objGroup.Put "adminDescription", "Scientist021"
objGroup.SetInfo
現在、私はメンバーのボタンを取得する上でのクリックは(私も「UpdateValues」のボタン名にこの名前を変更したい場合は、この値を更新するように構成されている。私はこの場所で立ち往生
、私は入れたかったです値「Scientist021」として、またはどんなユーザーがテキストボックスを入力できるテキストに 誰が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>