Vbscript 从输入中列出vbs中的组成员

Vbscript 从输入中列出vbs中的组成员,vbscript,Vbscript,好的,我想为我在学校的项目写一个用户管理系统。我选择vbs,因为它必须是一种脚本语言。脚本的一个特点是它可以列出给定组的成员。用户输入要在其中查找组的域,然后在输入框中列出这些组。然后,用户可以输入所选的组,函数会将此字符串提供给一个过程。这是不起作用的部分。我希望有人能帮我,我已经坐了好几个小时了 'Funktion zur Verarbeitung der Gruppenverwaltung Function gruppenVerwaltung choice = IB ("Gruppenve

好的,我想为我在学校的项目写一个用户管理系统。我选择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的功能
函数gruppenVerwaltung
选项=IB(“Gruppenverwaltung”&vbCr&_
“1.Gruppe hinzufügen”&vbCr&_
“2.Grupe entfernen”&vbCr&_
“3.Gruppen-Anzigen”&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 Anzegen”&vbCr&_
“9.祖鲁克……”
如果选择=3,那么
做
strDomain=IBText(“Domäne eingeben:,“输入”)
循环直到标准域“”
gruppenAnzeigen(strDomain)
如果结束
如果选择=9,那么
主要的
如果结束
如果选项<1或选项>9,则
MsgBox“Falsche Eingabe!Nochmal…”
格鲁彭沃尔顿
如果结束
如果选择=8,那么
strDomain=IBText(“Domäne der Gruppe eingeben:”)
Set objComputer=GetObject(“WinNT://”和strDomain)
objComputer.Filter=数组(“组”)
对于对象计算机中的每个对象
strText=strText&“Name:”&objGruppe.Name&vbCr
下一个
做
strGruppe=IBText(strText&vbCr&“Gruppe-eingeben:”)
循环到strGruppe“”
strGruppe=“LDAP://CN=”&strGruppe
mitgliederAnzeigen(斯特鲁普)
如果结束
端函数
“Prozedur zur Anzeige aller Mitglieder einer Gruppe
mitgliederAnzeigen分公司(strGruppe)
/////////////////////////////////////////////////////////////////
Set objGroup=GetObject(strGruppe)
对于objGroup.Members中的每个成员
WScript.echo Member.cn&“;”和Member.displayName
下一个
端接头
因此,基本上函数(gruppenVerwaltung)就是菜单所在的位置。如果用户选择条目8,则他必须输入一个域,然后在列表(inputbox)中获取该域中的所有组。然后,他可以选择存储为字符串的组

然后,当函数调用该过程(mitgliederAnzeigen)时,它会尝试对保存组名的字符串应用GetObject。这就是我遇到的错误“找不到域或无法建立连接”或类似的错误(抱歉,错误消息是德语,错误代码是8007054B)

我已经在线查看了代码,但是用户总是需要在代码中手动更改组(使用“LDAP\cn=groupName”的内容),我尝试过用这种样式格式化字符串,但显然它也不起作用

谢谢你的帮助


编辑:好的,现在我将我的电脑升级为域控制器,升级后我收到一个不同的错误(代码80072020)。它发生在与以前相同的行中(设置objGroup=GetObject(strGruppe))

虽然这没有使用问题中所采用的方法,但net.exe实用程序会处理组。可以通过Run方法从vbscript调用net.exe。 有关更多信息:

C:>网络帮助组

NET组必须在域控制器上运行

有关在VBscript中获取结果的信息,请参见