zaxxyaner
Goto Top

Ifmember Abfrage funktioniert nicht

Hallo zusammen,

habe folgendes Problem ich verbinde Drucker über GPOs .... und stelle im Logon Script eine Abfrage ob er der User in einer Gruppe ist
wo die GPO angewendet wird. Sieht bei mir so aus ....

%logonserver%\netlogon\ifmember.exe PRGE-G4_E3_CI
PRGE-G4_E3_SAP
PRGE-G3_E2_HR
PRGE-G4_E4_Controlling
PRGE-G6_E1_Haustechnik
PRGE-G3_E2_Marcom
PRGE-G4_E1_Wareneingang
PRGE-G4_E3_EntwicklungOptics
PRGE-G5_E1_Transmitter
PRGE-G5_E1_TSP
PRGE-G4_E3_Productmanagement


if errorlevel 1 GOTO DELETE //Drucker werden gelöscht
goto end


:DELETE

cscript.exe %logonserver%\netlogon\PrinterDelNet.vbs \\pcc-res04


:END

Das funktioniert jedoch nicht, also es soll abgefragt werden ob ein User in einer der oben genannten Gruppen ist. Wenn nicht soll er nichts machen wenn er in so einer Gruppe ist soll er Drucker vom alten PrintServer löschen.

Was ist falsch kann mir wer helfen ?

Content-Key: 137863

Url: https://administrator.de/contentid/137863

Printed on: April 18, 2024 at 18:04 o'clock

Member: Sascha-1
Sascha-1 Mar 10, 2010 at 09:54:37 (UTC)
Goto Top
Hallo Zaxxyaner,

habe in meinen Scripten immer mit if not %errorlevel% == 1 oder if not %errorlevel% == 0 gearbeitet.
Ich denke aber hier musst du einfach nur die Syntax anpassen.

Gruß

Sascha
Member: zaxxyaner
zaxxyaner Mar 10, 2010 at 10:01:51 (UTC)
Goto Top
Hi,

also soll ich einfach noch einbauen if errorlevel == 1 oder 0 ??

oder was meinst du gerade ?

Danke für deine Antwort

Gruß
Member: Sascha-1
Sascha-1 Mar 10, 2010 at 11:14:02 (UTC)
Goto Top
Bsp.:

%logonserver%\netlogon\ifmember xyz

if not %errorlevel% == 1 goto Ende
if not %errorlevel% == 0 goto Start

:Start

:Ende
Member: zaxxyaner
zaxxyaner Mar 10, 2010 at 12:05:22 (UTC)
Goto Top
Ah ok weiss was du meinst .... und noch was anderes wie finde ich den Errorlevel raus den er mir zurück gibt ?
und ist das % beim errorlevel wichtig ?

Danke Gruß
Member: Sascha-1
Sascha-1 Mar 10, 2010 at 12:27:20 (UTC)
Goto Top
Ja.

Du kannst dir den Errorlevel ausgeben mit "Echo %errorlevel% oder in eine Datei schreiben mit "Echo %errorlevel% > C:\datei.txt"
Member: zaxxyaner
zaxxyaner Mar 10, 2010 at 13:34:44 (UTC)
Goto Top
%logonserver%\netlogon\ifmember PRGE-G4_E3_CI
PRGE-G4_E3_SAP
PRGE-G3_E2_HR
PRGE-G4_E4_Controlling
PRGE-G6_E1_Haustechnik
PRGE-G3_E2_Marcom
PRGE-G4_E1_Wareneingang
PRGE-G4_E3_EntwicklungOptics
PRGE-G5_E1_Transmitter
PRGE-G5_E1_TSP
PRGE-G4_E3_Productmanagement


if not %errorlevel% 1 GOTO DELETE Drucker von res04 werden gelöscht
if not %errorlevel% 0 GOTO END
Drucker werden beibehalten


:DELETE

cscript.exe %logonserver%\netlogon\PrinterDelNet.vbs \\pcc-res04


:END

So sieht jetzt mein Konstrukt aus ... es funktioniert aber immer nur in eine Richtung entweder löscht er bei beiden Fällen die Drucker oder behält Sie in beiden Fällen ?
Verstehs grade nicht ganz ? Weisst du warum ?

Gruß
Member: Sascha-1
Sascha-1 Mar 11, 2010 at 08:31:19 (UTC)
Goto Top
Ich denke mal das könnte damit zusammenhängen das du mehrere Gruppen abfragst.

Zurück zum ersten Posting. Wurden die in den angegebenen Gruppen nicht vorhandenen Benutzer richtig abgearbeitet?

Falls ja, dann versuche einmal : if errorlevel > 1 GOTO DELETE //Drucker werden gelöscht
Member: Biber
Biber Mar 11, 2010 at 09:16:22 (UTC)
Goto Top
Mhhm, zaxxyaner und Sascha_1,

ich denke, ihr seid auf der falschen Fährte - ihr mischt zwei mögliche Strategien.

Es gäbe (mindestens) zwei denkbare Ansätze:

  • entweder jede namentlich bekannte Gruppe einzeln prüfen mit
IFMember GruppennameX || goto :HauWechDieDrucker
IFMember GruppennameY || goto :HauWechDieDrucker
...

  • oder aber mit "IFMember /list ...." alle Gruppen eines bestimmten Users anlisten und mit FIND und dessen Errorlevel weiterschunkeln.

Ich würde Variante Eins nehmen.

Grüße
Biber
Member: zaxxyaner
zaxxyaner Mar 11, 2010 at 20:57:47 (UTC)
Goto Top
Hi zusammen,

ne das ist nicht das was ich möchte ;) Er verarbeitet gar nichts im Moment weder eine einzelne Gruppe noch alle zusammen. Das errorlevel bleibt leider immer gleich ;(

Ich möchte Abfragen ob ein User in einer der oben genannten Gruppen eine Zugehörigkeit besitzt.

Hat jemand vielleicht ovn euch eine andere Lösung vielleicht ist der Ansatz ja auch total falsch ?!

Gruß Eric
Member: Sascha-1
Sascha-1 Mar 12, 2010 at 07:22:05 (UTC)
Goto Top
Hallo,

habe es mal bei mir verifiziert, es funktioniert einwandfrei.
Dabei ist das Ergebnis für den Errorlevel = 0 wenn es sich nicht um ein Mitglied der Gruppe handelt und 1 wenn der User Mitglied der Gruppe ist.

Also eigentlich sollte dies bei dir auch funktionieren, vielleicht schaust du dir das ganze nochmal in einer kleineren Umgebung mit einem Testuser Rechner usw an.

Gruß

Sascha_1
Member: zaxxyaner
zaxxyaner Mar 12, 2010 at 07:53:56 (UTC)
Goto Top
Hi,

ja das habe ich eigentlich gemacht hab lediglich auf eine Gruppe diesen Befehl angewendet ... War aber hier kein Erfolg zusehen ;(

Ich probier das jetzt hier nochmal aus ... mit welchem Skript hat es bei dir funktioniert so wie meins da oben steht oder hast du noch was verändert ?

Gruß Eric
Member: zaxxyaner
zaxxyaner Mar 12, 2010 at 08:45:45 (UTC)
Goto Top
Okay das hat jetzt bei mir auch funktioniert!
Super vielen vielen Dank ;)

%logonserver%\netlogon\ifmember.exe PRGE-G4_E3_CI PRGE-G4_E3_SAP

if errorlevel 1 GOTO DELETE //Drucker werden gelöscht
goto end

:DELETE
cscript.exe %logonserver%\netlogon\PrinterDelNet.vbs \\pcc-res04
:END

So hats geklappt ;)
Ist es möglich das ich alle Gruppen in eine Obergruppe zutun so das ich nur eine Gruppe oben abfragen kann ?

Gruß
Member: Biber
Biber Mar 12, 2010 at 09:13:51 (UTC)
Goto Top
Moin zaxxyaner,

Ist es möglich das ich alle Gruppen in eine Obergruppe zutun so das ich nur eine Gruppe oben abfragen kann ?
Wäre es denn sinnvoll oder brächte es irgendwelche Vorteile?

bei der Beantwortung dieser Frage bitte berücksichtigen:
  • Batch-Skripte sehen es relativ leidenschaftslos, ob sie nun eine Zeile oder zehn Zeilen durchnudeln. Jedenfalls solange alles in der Kernarbeitszeit und nicht samstag nachmittags, wenn die Sportschau kommt, gemacht werden soll.
  • Und es mag ja sein, dass du jetzt in das Skript 10 Zeilen für 10 Gruppen reintippseln musst - der Änderungsaufwand allerdings, wenn mal eine elfte Gruppe dazukommt, ist bei der Wartung dieses Skripts genauso überschaubar wie das Einpflegen dieser 11ten Gruppe in die angedachte Obergruppe "DenenDieDruckerGelöschtWerden"

Falls ihr noch nicht genug künstliche Hierarchien im Unternehmen haben solltet...Ja hey! Warte einfach. Die kommen auch ohne dein Zutun.

Grüße
Biber
Member: Sascha-1
Sascha-1 Mar 12, 2010 at 09:35:30 (UTC)
Goto Top
Ifmember kann meines Wissens nach keine Verschachtelung von Gruppen bis zum User auslesen.
Es ist, wie bereits Biber schon erwähnt hat, die eigentlich einfachste Methode, die Abfrage im Skript per Gruppe durchzuführen.

Sascha_1
Member: zaxxyaner
zaxxyaner Mar 12, 2010 at 09:50:05 (UTC)
Goto Top
Also von Vorteil wäre es schon ... es ist einfacherer zuhandeln und ich muss nicht ständig das Skript anfassen.
Ich habe es jetzt mal getestet es scheint zufunktionieren....

Natürlich ist es der Übersicht halber um einiges besser zu kontrollieren.

Mal eine andere Frage zu dem Thema ... ist es möglich wenn ich auf einem Server Druckerfreigaben habe diese für Domain User einzuschränken das Sie nichts sehen oder der Zugriff verweigert wird wenn die User sich die Drucker selbst verbinden möchten ?

Das würde ich gerne unterbinden ... und wenn es nicht unbedingt im Skript sein muss wäre das toll!
Member: Sascha-1
Sascha-1 Mar 12, 2010 at 10:19:44 (UTC)
Goto Top
Nachträgliche Konfigurationen / Anpassungen sind häufig Arbeitsintensiv.
Wenn du nun einen Druckserver mit entsprechend freigegeben Druckern hast, wirst du die Sicherheitseinstellungen entsprechend deiner Anforderung anpassen müssen, für jeden Drucker.