わかりましたので、学校でのプロジェクト用にユーザー管理システムを書きたいと思います。スクリプト言語である必要があったため、vbs を選択しました。このスクリプトの機能の 1 つは、特定のグループのメンバーを一覧表示できることです。ユーザーがグループを検索するドメインを入力すると、入力ボックスに一覧表示されます。ユーザーは選択したグループを入力でき、関数はこの文字列をプロシージャに渡します。これは機能していない部分です。誰かがここで私を助けてくれることを願っています.私は何時間もこれに座っていました....
'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」を使用して、このスタイルで文字列をフォーマットしようとしましたが、どうやらうまくいきません。
助けてくれてありがとう!
編集: OK、PC をドメイン コントローラーにアップグレードしました。アップグレード後、別のエラーが発生しました (コード 80072020)。以前と同じ行で発生します (Set objGroup = GetObject(strGruppe))