Hallo zusammen,
folgendes Problem:
Ich suche mit Hilfe der _AD_GetGroupMembers() der AD.au3 nach der Gruppe "Konzern". Jetzt gibt es vier Gruppen hierzu: "Konzern", "Konzern_GL", "Konzern_MA" und "Konzern_IT". Wenn ich also wie gesagt nach Konzern suche, bricht das Skript mit folgendem Fehler ab:
Code
"C:\Program Files (x86)\AutoIt3\Include\ad.au3" (641) : ==> The requested action with this object has failed.:
Local $sResult = $oObject.Get($sAttribute)
Local $sResult = $oObject^ ERROR
Any Guesses?
LG,
der Robert
P.S.: Gibt es alternativ einen Weg, nach dem exakten Namen der Gruppe zu suchen?
P.P.S.: Hier der aktuelle Code:
Spoiler anzeigen
AutoIt
#include <GuiListView.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ad.au3>
#include <GUIListBox.au3>
$frmGroupView = GUICreate("Gruppenmitglieder", 986, 516)
$Ber_lstGruppen = GUICtrlCreateList("", 8, 8, 200, 500, BitOR($gui_ss_default_list, $ws_hscroll, $lbs_extendedsel))
GUICtrlSetData(-1, "Gruppe 1|Gruppe2|Gruppe3|Gruppe4|Gruppe5|4you-01-AGD-Team01|4you-01-AGD-Team01-BL006|4you-01-AGD-Team01-BL008")
$frmGrp_lstGroupView = GUICtrlCreateListView("", 210, 8, 768, 500, BitOR($WS_HSCROLL, $WS_VSCROLL))
$Ber_conUserWahl = GUICtrlCreateContextMenu($Ber_lstGruppen)
$Ber_conGroupView = GUICtrlCreateMenuItem("Gruppenmitglieder anzeigen", $Ber_conUserWahl)
GUISetState(@SW_SHOW, $frmGroupView)
_AD_Open()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
_AD_Close()
Exit
Case $Ber_conGroupView
_GroupView()
;~ $grp = _AD_SamAccountNameToFQDN("4you-01-AGD-Team01")
;~ $grp = _AD_GetGroupMembers($grp)
;~ _ArrayDisplay($grp)
EndSwitch
WEnd
Func _GroupView()
Local $cnt = UBound(_GUICtrlListBox_GetSelItems($Ber_lstGruppen))-1 ;Anzahl der ausgewählten Gruppen aus der Liste
Local $names = _GUICtrlListBox_GetSelItemsText($Ber_lstGruppen) ;ausgewählte Gruppen aus der Liste
_ArrayDelete($names, 0)
If $cnt < 1 Then
MsgBox(0, "", "Bitte wählen Sie mindestens eine Gruppe aus!")
Else
For $i = 0 To $cnt - 1
_GUICtrlListView_AddColumn($frmGrp_lstGroupView, String($names[$i]), 150, 0) ;Überschriften füllen
Next
For $grp In $names
$grp = _AD_SamAccountNameToFQDN($grp) ;Umwandeln des SamAccountName zum FQDN
local $aGrpMember = _AD_GetGroupMembers($grp) ;Einlesen der Grp-Member
local $sMemberFull, $sMember = ""
_ArrayDelete($aGrpMember, 0)
For $i = 0 To UBound($aGrpMember) - 1
$aGrpMember[$i] = _AD_FQDNToSamAccountName($aGrpMember[$i]) ;Umwandeln des jeweiligen Usernames zum Displayname
Next
_ArraySort($aGrpMember, 0)
For $i = 0 To UBound($aGrpMember) - 1
If $i = UBound($aGrpMember) - 1 Then
$sMember = $sMember & $aGrpMember[$i]
If $grp = $names[0] Then
$sMemberFull = $sMember
Else
$sMemberFull = $sMemberFull & "#" & $sMember
EndIf
Else
$sMember = $sMember & $aGrpMember[$i] & ";"
EndIf
Next ;>> Erstellen eines Strings der Usernames
Next
local $aMemberFull = StringSplit($sMemberFull, "#") ;Erstellen eines 1D-Arrays
_ArrayDelete($aMemberFull, 0)
local $aMemberArray[1][UBound($aMemberFull)] ;Initialisieren eines 2D-Arrays
For $i = 0 To UBound($aMemberFull) - 1
$aMemberDetail = StringSplit($aMemberFull[$i], ";")
_ArrayDelete($aMemberDetail, 0)
If UBound($aMemberDetail) - 1 > UBound($aMemberArray) - 1 Then
ReDim $aMemberArray[UBound($aMemberDetail)][UBound($aMemberFull)]
EndIf
For $j = 0 To UBound($aMemberDetail) - 1
$aMemberArray[$j][$i] = $aMemberDetail[$j]
Next
Next
_GUICtrlListView_AddArray($frmGrp_lstGroupView, $aMemberArray) ;>> eintragen der Usernamen in die listview
EndIf
EndFunc
Alles anzeigen