gw5 10 Geschrieben 5. Juli 2011 Melden Teilen Geschrieben 5. Juli 2011 Hi, da ifmember.exe ab 110 Gruppen pro User rum spinnt bin ich auf der Suche nach einem Ersatz. Die Problematik wurde schonmal hier http://www.administrator.de/index.php?content=43532&thread=false diskutiert. Dieses Skript if wscript.arguments.count <> 2 then wscript.echo "ifmember.vbs <user> <group>" wscript.quit end if sUser = ucase (wscript.arguments(0)) sGroup = wscript.arguments(1) on error resume next set oGrp = GetObject("WinNT://DOMAINNAME/" & sGroup) for each oMember in oGrp.Members if ucase(oMember.Name) = sUser then bFound = true end if next on error goto 0 if bFound then wscript.echo "Benutzer " & sUser & " gefunden in Gruppe " & sGroup end if wscript.quit (bFound) habe ich mir als Vorlage genommen... mittels batch rufe ich es über cscript ifmember.vbs BenutzerX GruppeY auf, hierbei ist es egal, ob bei GetObject etwas eingetragen ist oder nicht, es wird immer Benutzer BenutzerX gefunden in Gruppe GruppeY ausgegeben. Wie geb ich den korrekten Pfad für meine Domäne an? Hab schon set oGrp = GetObject("WinNT://mw/" & sGroup) set oGrp = GetObject("WinNT://mw.local/" & sGroup) set oGrp = GetObject("ldap://dc=mw,dc=local/" & sGroup) ausprobiert, leider ohne Erfolg :( Ideen? Grüße gw5 Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 5. Juli 2011 Melden Teilen Geschrieben 5. Juli 2011 (bearbeitet) Hallo GW5, Willkommen am Board :) bei dem aktuellen Problem kann ich nicht helfen. Nur so viel: Mit Einführung von W2k und Gruppenrichtlinien habe ich auf ifmember verzichtet. Z.B. gibt es für drei Geschäftbereiche ebenso drei Organisationseinheiten und drei LoginBatches; letztere werden gestartet im jeweiligen Benutzerknoten der Richtlinie. Für einen Geschäftsbereich gibt es mehrere Sicherheitgruppen, eine der Geschäftbereich selber auf die Root des Bereiches, dann noch weitere für die Berechtigungen auf die Unterordner. Das Mappen der Netzlaufwerke geschieht auf den Geschäftsbereich und die Unterordner, falls der Benutzer Member ist. Wo er keine Rechte hat, da ist das Mappen erfolglos. Meine LoginBatches sind simpel: If exist ..... net use ...... Dank ABE werden dem Benutzer nur Unterordner gezeigt, auf die er Rechte hat, also nur die können mapped werden. Eine Möglichkeit wäre also, das Konzept zu überdenken; nur relativ wenige Sicherheitsgruppen durch Struktur. bearbeitet 5. Juli 2011 von lefg Zitieren Link zu diesem Kommentar
gw5 10 Geschrieben 6. Juli 2011 Autor Melden Teilen Geschrieben 6. Juli 2011 Moin lefg, danke schonmal für deinen Hinweis. Leider kann an der gegebenen Gruppen/OU-Struktur nicht viel geändert werden. Aber trotzdem habe ich noch eine Frage zu deinem Logon-Batch. Wie fragst du mit if exist die Gruppenzugehörigkeit eines Userers ab? Könntest du mal eine komplette Abfrage posten? :) VG gw5 Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 6. Juli 2011 Melden Teilen Geschrieben 6. Juli 2011 Moin gw5, abgefragt wird das Vorhandensein, amn kann auch sagen das Erkennen des Ordners. ABE bewirkt, nur die Ordner mit Berechtigungen darauf sind für den Benutzer und das sicht-, erreichbar. Die Existenz wird also abgefragt und nur im positiven Fall das Mapping ausgeführt. set Fileserver=\\0Server if exist %Fileserver%\NLL net use G: %Fileserver%\NLL /persistent:yes if exist %Fileserver%\NLL\Vertrieb net use V: %Fileserver%\NLL\Vertrieb /persistent:yes Freigegeben ist der Ordner NLL als Root eines Bereiches, darin z.B. der Unterordner Vertrieb. Es gibt dieSicherheitsgruppen NLL und Vertrieb, NLL ist Mitglied von Vertrieb; bedeutet, ein Member in Vertrieb bekommt automatisch auch die Berechtigung auf NLL. Gruß Edgar Zitieren Link zu diesem Kommentar
gw5 10 Geschrieben 6. Juli 2011 Autor Melden Teilen Geschrieben 6. Juli 2011 Thx. :) Habs gerafft. Hat vielleicht noch jemand ne Idee zum Ursprungsproblem? Zitieren Link zu diesem Kommentar
Sigma 10 Geschrieben 6. Juli 2011 Melden Teilen Geschrieben 6. Juli 2011 Hallo, entferne im Code "on error resume next" und werte dann die Fehlermeldung beim Ausführen des Scripts aus. Alternativ kannst Du direkt unter der Zeile mit "GetObject" folgenden Code einfügen. Mit beiden Methoden erfährst Du, ob der Fehler überhaupt bei der Zeile mit "GetObject" liegt und welcher Fehler auftritt. If Err.Number = 0 Then MsgBox("Everything went fine") ElseIf Err.Number = 429 Then MsgBox("No object of the specified class type exists.") ElseIf Err.Number = 432 Then MsgBox("No object with the specified path and file name exists.") Else MsgBox("Error " & Err.Number & " occurred") End If Err.Clear() Grüße, Sigma Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.