Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

VBScript - prüfen ob Benutzer - Computer Mitglied einer Gruppe ist

Frage Entwicklung Batch & Shell

Mitglied: AndiStroebi

AndiStroebi (Level 1) - Jetzt verbinden

23.07.2012 um 15:11 Uhr, 6535 Aufrufe, 7 Kommentare

Hallo,

ich habe mir vor kurzem ein Script gebastelt mit dem ich über das AD bestimmen kann welcher Benutzer/Computer welchen Drucker automatisch bekommt. Funktioniert auch alles perfekt.

Ich habe jetzt im AD Gruppen die den selben Namen haben wie die Drucker und die Mitglieder der Gruppen bekommen die Drucker automatisch verbunden.

Nun habe ich eben das Problem das ich Abteilungsdrucker habe, die allen Computern einer Abteilung zugeordnet werden müssen. Jetzt würde ich gerne in die Druckergruppe als Mitglied weitere Gruppen hinzufügen (z.B. Abteilung-Buchhaltung).

Jetzt ist meine Frage, wie finde ich mit VBScript herraus ob ein Benutzer/Computer Mitglied einer Gruppe ist, auch wenn er nicht direkt in der Gruppe steht, sondern sich in weiteren Untergruppen versteckt?

Beispiel


->Drucker1
--->User1
--->User2
--->Gruppe1
----->User3
----->User4

Wie finde ich in diesem Beispiel heraus ob User 3 & 4 Mitglieder sind von Drucker1?


Gruß Andi
Mitglied: bioperiodik
23.07.2012 um 15:15 Uhr
Moin,

Muss es unbedingt VB sein?

Evtl. wäre Kix32 was für dich?
Bitte warten ..
Mitglied: bastla
23.07.2012 um 17:54 Uhr
Hallo AndiStroebi!

Schau Dir mal den "Scripting Guy"-Artikel "Determining a User’s Group Memberships" an ...

Grüße
bastla
Bitte warten ..
Mitglied: eazy-isi
24.07.2012 um 07:43 Uhr
Servus,

also ich nutze: http://www.faq-o-matic.net/2011/07/06/jos-version-3-1/ und übergebe das ganze dann an Excel bzw. starte es schon aus Excel heraus.

Gruß
eazy_isi
Bitte warten ..
Mitglied: AndiStroebi
24.07.2012 um 13:53 Uhr
Hallo,

@bioperiodik: das Script ist eben schon zu 99% fertig. Da möchte ich ungern auf etwas anderen umschwenken

@bastla: Sie schon mal gut aus. Muss mal schauen ob mich das weiter bringt. Weil wenn ich es bisher richtig verstanden habe wird hier gesucht in welcher Gruppe ein User ist. Ich sollte aber wissen ob ein User ein Mitglied einer bestimmten Gruppe ist. Hört sich zwar fast gleich an, ist aber ein anderer Ansatz.

@eazy_isi: entweder ich habe es noch nicht richtig verstanden oder ist das nur zum Dokumentationen machen? oder meintest du ich soll mal den Quellcode von dem durchschauen?
Bitte warten ..
Mitglied: bastla
24.07.2012, aktualisiert um 14:03 Uhr
Hallo AndiStroebi!
Ich sollte aber wissen ob ein User ein Mitglied einer bestimmten Gruppe ist. Hört sich zwar fast gleich an, ist aber ein anderer Ansatz.
Die (für mich) einfachste Lösung wäre, alle Gruppen mit einem passenden Trennzeichen (zB "#") in einen String (im Beispiel unten Variable "Groups") zu packen - sähe dann etwa so aus:
#Drucker1#Drucker4#Drucker5#
und dann per "InStr()" abzufragen:
If InStr(Groups, "#" & TheGroup & "#") > 0 Then WScript.Echo "ist in Gruppe " & TheGroup
Grüße
bastla
Bitte warten ..
Mitglied: AndiStroebi
29.07.2012 um 08:26 Uhr
Hi,

leider geht das eben nicht.

Jetzt würde ich herausfinden ob er direkt in einer der Hauptgruppen ist. Das ist eben mein Problem. Ich muss herausfinden ob der Benutzer in einer Untergruppe ist. z.B. Gruppe1 oder sogar Gruppe2.

->Drucker1
--->User1
--->User2
--->Gruppe1
----->User3
----->User4
----->Gruppe2
------->User5
Bitte warten ..
Mitglied: bastla
29.07.2012 um 10:37 Uhr
Hallo AndiStroebi!
Jetzt würde ich ...
Hast Du denn noch nicht?
ob er direkt in einer der Hauptgruppen ist
Hast Du Dir den verlinkten Artikel / das Script überhaupt angesehen? Wenn ja, solltest Du eigentlich gemerkt haben, dass es darin genau darum geht, auch verschachtelte ("nested") Gruppen zu berücksichtigen - eine "direkte" Mitgliedschaft bei der Hauptgruppe ist daher nicht nötig ...

Ich muss allerdings zugeben, dass die Scripting Guys ein Leerzeichen vergessen haben , daher (aber zumindest das Testen überlasse ich Dir):
01.
On Error Resume Next 
02.
 
03.
Set objUser=GetObject("LDAP://" & CreateObject("ADSystemInfo").UserName) 
04.
Set colGroups = objUser.Groups 
05.
Groups = "#" 
06.
For Each objGroup in colGroups 
07.
    Groups = Groups & objGroup.CN & "#" 
08.
    GetNested(objGroup) 
09.
Next 
10.
If InStr(Groups, "#Drucker1#") > 0 Then WScript.Echo "ist in Gruppe ""Drucker1""" 
11.
If InStr(Groups, "#Drucker2#") > 0 Then WScript.Echo "ist in Gruppe ""Drucker2""" 
12.
 
13.
Function GetNested(objGroup) 
14.
    On Error Resume Next 
15.
    colMembers = objGroup.GetEx("memberOf") 
16.
    For Each strMember in colMembers 
17.
        strPath = "LDAP://" & strMember 
18.
        Set objNestedGroup = _ 
19.
        GetObject(strPath) 
20.
        Groups = Groups & objGroup.CN & "#" 
21.
        GetNested(objNestedGroup) 
22.
    Next 
23.
End Function
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Windows Server
gelöst Administrative Freigaben für andere Benutzer aus der Gruppe Administratoren (7)

Frage von bluepython zum Thema Windows Server ...

VB for Applications
gelöst Per Vbscript bestimmte Zeile ungeachtet der Nummerierung prüfen (7)

Frage von aletri zum Thema VB for Applications ...

Exchange Server
gelöst Allen Mitgliedern einer Distributionsgruppe das Senden als erlauben (4)

Frage von Cubic83 zum Thema Exchange Server ...

Batch & Shell
gelöst PS alle Mitglieder einer Sicherheitsgruppe bzw. OU (6)

Frage von lupolo zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
gelöst Raid-Controller (Areca) Datenverlust trotz R5 (16)

Frage von sebastian2608 zum Thema Festplatten, SSD, Raid ...

Webentwicklung
Aktuellen Mitarbeiter auf Homepage anzeigen (13)

Frage von alemanne21 zum Thema Webentwicklung ...

Server-Hardware
HP ProLiant DL380 G7, POST Error: 1785-Drive Array not Configured (9)

Frage von Paderman zum Thema Server-Hardware ...

Microsoft Office
gelöst Office 365 Pro Domäne einrichten OHNE Webseite (9)

Frage von thklemm zum Thema Microsoft Office ...