好的,所以我想在学校为我的项目编写一个用户管理系统。我选择了vbs,因为它必须是一种脚本语言。该脚本的一个功能是它可以列出给定组的成员。用户输入要在其中查找组的域,然后将其列在输入框中。然后,用户可以输入所选的组,该函数将该字符串提供给过程。这是不起作用的部分。我希望有人可以在这里帮助我,我已经坐了好几个小时....
'Funktion zur Verarbeitung der Gruppenverwaltung
Function gruppenVerwaltung
choice = IB ("Gruppenverwaltung" & vbCr & _
"1. Gruppe hinzufügen" & vbCr & _
"2. Grupe entfernen" & vbCr & _
"3. Gruppen anzeigen" & vbCr & _
"4. Lokale Gruppe einer globalen Gruppe zuweisen" & vbCr & _
"5. Lokale Gruppe aus einer globalen Gruppe entfernen" & vbCr & _
"6. Mitglieder einer Gruppe hinzufügen" & vbCr & _
"7. Mitglieder aus einer Gruppe entfernen" & vbCr & _
"8. Mitglieder einer Gruppe anzeigen" & vbCr & _
"9. Zurück...")
If choice = 3 Then
Do
strDomain = IBText("Domäne eingeben: ", "Input")
Loop Until strDomain <> ""
gruppenAnzeigen(strDomain)
End If
If choice = 9 Then
main
End If
If choice < 1 Or choice > 9 Then
MsgBox "Falsche Eingabe! Nochmal..."
gruppenVerwaltung
End If
If choice = 8 Then
strDomain = IBText("Domäne der Gruppe eingeben: ")
Set objComputer = GetObject ("WinNT://" & strDomain)
objComputer.Filter = Array("group")
For each objGruppe in objComputer
strText = strText & "Name:" & objGruppe.Name & vbCr
Next
Do
strGruppe = IBText(strText & vbCr & "Gruppe eingeben: ")
Loop Until strGruppe <> ""
strGruppe = "LDAP://CN=" & strGruppe
mitgliederAnzeigen(strGruppe)
End If
End Function
'Prozedur zur Anzeige aller Mitglieder einer Gruppe
Sub mitgliederAnzeigen(strGruppe)
/////////////////////////////////////////////////////////////////
Set objGroup = GetObject(strGruppe)
For Each Member in objGroup.Members
WScript.echo Member.cn & " ; " & Member.displayName
Next
End Sub
所以基本上功能(gruppenVerwaltung)就是菜单所在的位置。如果用户选择条目8,则他必须输入域,然后在列表中输入该域中的所有组(输入框)。然后他可以选择一个存储为字符串的组。
当函数调用过程(mitgliederAnzeigen)时,它会尝试在保存组名的字符串上应用GetObject。这是我得到一个错误“无法找到域或无法建立连接”或沿着这些行的东西(抱歉错误消息是德语,错误代码是8007054B)。
我已经在线查看了代码,但是用户总是必须在代码中手动更改组(具有“LDAP \ cn = groupName”的东西,我尝试使用此样式格式化字符串,但显然它也不起作用。< / p>
感谢您的帮助!
编辑:好了,现在我将我的电脑升级为域控制器,自升级后我得到了一个不同的错误(代码80072020)。它出现在与之前相同的行中(设置objGroup = GetObject(strGruppe))
答案 0 :(得分:0)
虽然这不使用问题中采用的方法,但net.exe实用程序会操纵组。可以通过Run方法从vbscript调用net.exe。 有关更多信息:
C:&GT;网络帮助小组
NET GROUP必须在域控制器上运行。
关于在VBscript中获取结果,请参阅How to redirect command-Line output