Suche einen Scripter für eine Druckerzuweisung per Logonscript
Hallo.
Ich möchte ganz gerne unsere bisherige Druckerzuweisung über KIX vereinfachen.
Im Moment ist es so, das jeder Drucker im Kix als eigene Abfrage gepflegt ist.
Ein Auszug:
if ingroup ("p-gtbvw010") = 1
addprinterconnection ("\\vbaprintbi1\p-gtbvw010")
endif
if ingroup ("p-gtbvw010_farbe") = 1
addprinterconnection ("\\vbaprintbi1\p-gtbvw010_farbe")
endif
if ingroup ("p-zimmerei010") = 1
addprinterconnection ("\\vba3printbi01\p-zimmerei010")
endif
if ingroup ("p-zimmerei021") = 1
addprinterconnection ("\\print3\p-zimmerei021")
endif
Ich will das nun vereichfachen, habe aber keine Ahnung wie.
Es ist so, das der User Mitglied in einer Gruppe ist, die wie die Druckerfreigabe heißt. (z.B. testuser ist Mitglied in AD Gruppe p-gtbvw010 und p-zimmerei021)
Es gibt momentan 3 Printserver. Ein W2K und 2 W2K3.
Das Script is sehr lang, so dass es hinter dünnen Leitungen ewig dauert. Außerdem kann man schlecht kontrollieren, ob es zu einem Fehler gekommen ist.
Und ich muss immer darauf achten, auch den richtigen Server anzugeben.
Weiß jemand Rat?
Ist KIX hier noch zweckmäßig?
MfG
Björn
Ich möchte ganz gerne unsere bisherige Druckerzuweisung über KIX vereinfachen.
Im Moment ist es so, das jeder Drucker im Kix als eigene Abfrage gepflegt ist.
Ein Auszug:
if ingroup ("p-gtbvw010") = 1
addprinterconnection ("\\vbaprintbi1\p-gtbvw010")
endif
if ingroup ("p-gtbvw010_farbe") = 1
addprinterconnection ("\\vbaprintbi1\p-gtbvw010_farbe")
endif
if ingroup ("p-zimmerei010") = 1
addprinterconnection ("\\vba3printbi01\p-zimmerei010")
endif
if ingroup ("p-zimmerei021") = 1
addprinterconnection ("\\print3\p-zimmerei021")
endif
Ich will das nun vereichfachen, habe aber keine Ahnung wie.
Es ist so, das der User Mitglied in einer Gruppe ist, die wie die Druckerfreigabe heißt. (z.B. testuser ist Mitglied in AD Gruppe p-gtbvw010 und p-zimmerei021)
Es gibt momentan 3 Printserver. Ein W2K und 2 W2K3.
Das Script is sehr lang, so dass es hinter dünnen Leitungen ewig dauert. Außerdem kann man schlecht kontrollieren, ob es zu einem Fehler gekommen ist.
Und ich muss immer darauf achten, auch den richtigen Server anzugeben.
Weiß jemand Rat?
Ist KIX hier noch zweckmäßig?
MfG
Björn
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 140477
Url: https://administrator.de/contentid/140477
Ausgedruckt am: 25.11.2024 um 13:11 Uhr
1 Kommentar
Hallo Björn,
war auf der Suche, ob ich nicht noch etwas sinnvolles beisteuern kann. Da Deine Frage noch unbeantwortet ist, kann ich es ja nicht schlimmer machen
Ob KIX noch zwecksmäßig ist, kann ich Dir auch nicht beantworten, aber warum umstellen, wenn es noch funktioniert?
Als Vorschlag könnte ich Dir folgendes anbieten - wir nutzen es zwar etwas anders, aber gut:
Ich habe zwei Funktionen, die erst einmal alle Gruppen als ein Array zurückgibt. Das Array wird bei mir im Init.kix ausgeführt und während des Logins vorgehalten. Wird halt öfter benötigt. Der Ermitteln über dsquery ist genauer - löst "Gruppe in Gruppe" auf. Ansonsten konnte ich keinen Unterschied feststellen.
Deine Druckergruppe fängt ja immer mit einem "P-", also mit einem for each das Array durchsuchen und beim Treffer entsprechend mappen.
Markus
ungetestet:
Aus meinem login.kix:
war auf der Suche, ob ich nicht noch etwas sinnvolles beisteuern kann. Da Deine Frage noch unbeantwortet ist, kann ich es ja nicht schlimmer machen
Ob KIX noch zwecksmäßig ist, kann ich Dir auch nicht beantworten, aber warum umstellen, wenn es noch funktioniert?
Als Vorschlag könnte ich Dir folgendes anbieten - wir nutzen es zwar etwas anders, aber gut:
Ich habe zwei Funktionen, die erst einmal alle Gruppen als ein Array zurückgibt. Das Array wird bei mir im Init.kix ausgeführt und während des Logins vorgehalten. Wird halt öfter benötigt. Der Ermitteln über dsquery ist genauer - löst "Gruppe in Gruppe" auf. Ansonsten konnte ich keinen Unterschied feststellen.
Deine Druckergruppe fängt ja immer mit einem "P-", also mit einem for each das Array durchsuchen und beim Treffer entsprechend mappen.
Markus
ungetestet:
$AlleGruppen = GetGlobaleGruppen()
for each $Gruppe in $AlleGruppen
if Left($Gruppe, 2) = "p-"
$rc = addprinterconnection ("\\print3\$Gruppe")
endif
next
Aus meinem login.kix:
Function GetGlobaleGruppen()
$tmpFile = '%temp%\dsget_@userid.txt'
$tmpADCmd = 'dsquery user -name @userid | dsget user -memberof -expand'
shell "cmd.exe /c $tmpADCmd >$tmpFile"
$tmpGG = " * Filter <$FilterGlobalGroup>"
$tmpFileHandle = FreeFileHandle()
IF Open($tmpFileHandle, $tmpFile) = 0
$x = ReadLine($tmpFileHandle)
WHILE @ERROR = 0
if instr($x, $FilterGlobalGroup) > 0
$tmpGG = '$tmpGG;' + Substr($x, 5, (instr($x, ',')-5))
endif
$x = ReadLine($tmpFileHandle)
LOOP
ENDIF
$rc = Close($tmpFileHandle)
$GetGlobaleGruppen = Split(SubStr($tmpGG, 2), ";")
EndFunction
Function GetGlobaleGruppen_perKIXermitteln()
$Index = 0
$AllGroup = ""
$LenDomain = Len(@LDomain)+2
$LenGroupFilter = Len($FilterGlobalGroup)
DO
$Group = ENUMGROUP($Index)
if Substr($Group, $LenDomain, $LenGroupFilter) = $FilterGlobalGroup
$AllGroup = "$AllGroup;"+Substr($Group,$LenDomain)
endif
$Index=$Index+1
UNTIL Len($Group) = 0
$GetGlobaleGruppen_perKIXermitteln = Split(Substr($AllGroup, 2),";")
EndFunction