Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung VB for Applications

VBS - AD Gruppen auslesen und vergleichen?

Mitglied: berginet

berginet (Level 1) - Jetzt verbinden

01.10.2008, aktualisiert 02.10.2008, 9556 Aufrufe, 5 Kommentare

Neuling braucht etwas Hilfestellung

Ich möchte mit VBS aus 2 Gruppen auslesen das ich soweit auch schon hinkriege was ich aber nicht weiss, wie kann ich die User der beiden Gruppen dann miteinander vergleichen ob ein User in beiden Gruppen auftaucht.

Mein Skript bisher was nur die Gruppen ausliest.

01.
 
02.
Option Explicit 
03.
 
04.
DIM network, domainname 
05.
DIM objGroup1, objGroup2, arrMemberOf1, arrMemberOf2, strMember 
06.
DIM i, z, wert 
07.
 
08.
on error resume next 
09.
 
10.
'************************************************************************************************************** 
11.
 
12.
set network = CreateObject("Wscript.Network") 
13.
 
14.
domainname = network.UserDomain				    
15.
 
16.
set objGroup1 = GetObject("LDAP://CN=Gruppe1,CN=Users,DC=" &domainname &",DC=test") 
17.
objGroup1.GetInfo 
18.
 
19.
set objGroup2 = GetObject("LDAP://CN=Gruppe2,CN=Users,DC=" &domainname &",DC=test") 
20.
objGroup2.GetInfo  
21.
 
22.
arrMemberOf1 = objGroup1.GetEx("member") 
23.
arrMemberOf2 = objGroup2.GetEx("member") 
24.
 
25.
'************************************************************************************************************** 
26.
i = 0 
27.
z = 0 
28.
For Each strMember in arrMemberOf1  
29.
    	if strmember <> "" THEN 
30.
    		WScript.echo strMember 
31.
		i = i + 1 
32.
	end if 
33.
Next 
34.
For Each strMember in arrMemberOf2      
35.
    	if strmember <> "" THEN 
36.
    		WScript.echo strMember 
37.
		z = z + 1 
38.
	end if 
39.
Next 
40.
 
41.
wscript.echo "i" &i 
42.
wscript.echo "z" &z 
43.
 
Für Hilfestellung wäre ich sehr dankbar.

lg
Alex
Mitglied: bastla
01.10.2008 um 15:23 Uhr
Hallo berginet und willkommen im Forum!

Ungetestet etwa so:
01.
Option Explicit 
02.
 
03.
DIM network, domainname 
04.
DIM objGroup1, objGroup2, arrMemberOf1, arrMemberOf2, strMember, strG2 
05.
 
06.
on error resume next 
07.
 
08.
'************************************************************************************************************** 
09.
 
10.
set network = CreateObject("Wscript.Network") 
11.
 
12.
domainname = network.UserDomain				    
13.
 
14.
set objGroup1 = GetObject("LDAP://CN=Gruppe1,CN=Users,DC=" &domainname &",DC=test") 
15.
objGroup1.GetInfo 
16.
 
17.
set objGroup2 = GetObject("LDAP://CN=Gruppe2,CN=Users,DC=" &domainname &",DC=test") 
18.
objGroup2.GetInfo  
19.
 
20.
arrMemberOf1 = objGroup1.GetEx("member") 
21.
arrMemberOf2 = objGroup2.GetEx("member") 
22.
 
23.
'************************************************************************************************************** 
24.
strG2 = "#" & Join(arrMemberOf2, "#") & "#" 
25.
For Each strMember in arrMemberOf1  
26.
    If strMember <> "" THEN 
27.
        If InStr(strG2, "#" & strMember & "#") > 0 Then WScript.Echo strMember 
28.
    End If 
29.
Next 
30.
 
31.
WScript.Echo "Anzahl Gruppe 1: " & CStr(UBound(arrMemberOf1)) 
32.
WScript.Echo "Anzahl Gruppe 2: " & CStr(UBound(arrMemberOf2))
Durch das Zusammenfassen der in Gruppe 2 befindlichen User in einen String kann anstelle einer Schleife über alle User einfach mit "InStr()" gesucht weden. Damit keine Teilstrings gefunden werden (zB "bauer" in "unterbauer") wird jeder Username durch "#" begrenzt.
Weitere Alternative zu der beschriebenen Vorgangsweise: Ein "dictionary" aufbauen ...

Grüße
bastla

[Edit] In Zeile 24 auf "arrMemberOf2" korrigiert [/Edit]
Bitte warten ..
Mitglied: Logan000
01.10.2008 um 15:29 Uhr
Moin Moin

Du muss Deine beiden For-next schleifen schachteln.
Etwa so:
01.
... 
02.
For Each strMember1 in arrMemberOf1  
03.
   if strmember1 <> "" THEN 
04.
      For Each strMember2 in arrMemberOf2      
05.
         if strmember2 <> "" THEN 
06.
            If strmember1 = strmember2 Then 
07.
               wscript.echo strmember1 & " ist in beiden Gruppen vorhanden." 
08.
            end if 
09.
         end if 
10.
      Next 
11.
   end if 
12.
Next 
13.
...
Gruß L.
Bitte warten ..
Mitglied: berginet
02.10.2008 um 11:54 Uhr
Hallo vielen Dank für die schnelle Hilfe, werde beide Varianten testen.

Kann es aber sein, dass bei StrG2 die arrMemberOf2 nicht 1 zusamengefasst werden müssen?

Das mit dem Dictionary wenn Du kurz erläutern könntest wäre super, aber ich kanns auch suchen wenn ich mal dazu komme.

Sorry das ich erst jetzt Antworten konnte.
lg
Bergi
Bitte warten ..
Mitglied: berginet
02.10.2008 um 11:54 Uhr
Hallo vielen Dank für die schnelle Hilfe, werde beide Varianten testen.
Sorry das ich erst jetzt Antworten konnte.
lg
Bergi
Bitte warten ..
Mitglied: bastla
02.10.2008 um 13:06 Uhr
Hallo berginet!

Kann es aber sein, dass bei StrG2 die arrMemberOf2 nicht 1 zusamengefasst werden müssen?
Es kann nicht sein, sondern muss - sorry, war falsch ...
Bei der Variante "dictionary" würden die Zeilen ab 24 etwa so aussehen:
01.
Set d2 = CreateObject("Scripting.Dictionary") 
02.
d2.CompareMode = vbTextCompare 
03.
 
04.
For Each strMember In arrMemberOf2 
05.
  d2.Add strMember, "" 
06.
Next 
07.
 
08.
For Each strMember In arrMemberOf1 
09.
  If d2.Exists(strMember) Then WScript.Echo strMember 
10.
Next
Eigentlich ist ein "dictionary" dazu gedacht, Wertepaare (bestehend aus Schlüssel und zugeordnetem Wert) aufzunehmen - da hier aber nur der Schlüssel (bzw dessen allfälliges Vorhandensein) interessiert, wird als Wert jeweils ein Leerstring zugewiesen.

Doku: http://msdn.microsoft.com/en-us/library/x4k5wbx4(VS.85).aspx

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Windows Userverwaltung
AD Gruppen User auslesen
Frage von pgWindows Userverwaltung1 Kommentar

Guten Tag, ich bin auf der Suche nach einem Programm welches mit die User eines AD ausliest und mir ...

Windows Server
AD-User einer AD-Gruppe auslesen und in ein File schreiben
gelöst Frage von EstefaniaWindows Server15 Kommentare

Guten Abend. Ich habe eine Frage an Experten. Suche ein einfaches Script, wo mir AD-User einer von mir ausgewählten ...

Batch & Shell
AD: Alle Gruppenmitgliedschaften von Benutzern auslesen, die in einer Gruppe sind
Frage von tiemunBatch & Shell1 Kommentar

Hallo zusammen, ich komme gerade nicht weiter. Ich habe eine Gruppe aus der ich alle Benutzer auslese: Get-ADGroupMember "Gruppe" ...

Batch & Shell
Vergleich AD-Gruppe Postfach mit Powershell und EMS
Frage von lugmdkBatch & Shell1 Kommentar

Hallo Community! Ich möchte mittels einem regelmäßigem Skript den Mitgliedern von bestimmten AD-Gruppen Vollzugriff auf bestimmte Exchange-Postfächer geben. An ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 6 StundenLinux1 Kommentar

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Sicherheit
Meltdown und Spectre: Die machen uns alle was vor
Information von FrankSicherheit23 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
gelöst Frage von Windows10GegnerNetzwerkgrundlagen22 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...

Netzwerke
Packet loss bei "InternetLeitungsvollauslastung"
gelöst Frage von Freak-On-SiliconNetzwerke17 Kommentare

Servus; Ja der Titel klingt komisch, is aber so. Wenn die Internetleitung voll ausgelastet ist, hab ich extreme packet ...

Ubuntu
Ubuntu - Starter für nicht vertrauenswürdige Anwendungen
Frage von adm2015Ubuntu17 Kommentare

Hallo zusammen, Ich verwende derzeit die Ubuntu Versionen 17.10 bzw. im Test 18.04. Ich habe mehrere .desktop Dateien in ...