LoginScript - Druckerzuweisen mit KIX und Gruppenobjekte in der AD?
Hallo Zusammen,
ich bin gerade etwas am Erfahrungen sammeln mit den AD von MS und probiere gerade ein paar Dinge mit dem LoginScript aus, was man ja bei der Anmeldung laufen lassen kann.
ich habe vor in Zukunft die Drucker für die einzelnen Maschienen direkt mit dem Login-Script zuweisen zu lasseb und habe diesbezüglich auch verschiedene Gruppenobjekte in der AD angelegt. Der Gruppenname ist wie folgt aufgebaut "printer" + Druckername -> z.B. printerD1228
Ich prüfe nun noch ab ob der Rechnername oder der User in dieser Printergruppe ist und weise den Drucker entsprechend zu. Das funktioniert soweit auch zuverlässig.
Hier mein KIX-Script:
If (@WKSTA OR @userid) INGROUP("printerD1228")
ADDPRINTERCONNECTION ("\\prints01\D1228")
? "Drucker D1228 wurde erfolgreich angeschlossen"
Endif
Ich will jetzt, dass er sich die Gruppennamen dynamisch aus einer vorgegebenen OU in der AD zieht und diese per Schleife durchläuft und die entsprechenden Drucker zuweist, so dass ich nicht bei einer neuen Druckerinstallation das Login-Script anpassen muss, sondern nur eine neue Gruppe in der AD. Ebenfalls würde dieses auch sehr unübersichtlich werden, wenn die Anzahl der Drucker zunehmen wird. Im Augenblick sind es bei mir 3 Drucker für knappe 25 Clients; tendenz natürlich steigend.
Kann mir jemand von euch weiterhelfen ?
Gruß
Basti
ich bin gerade etwas am Erfahrungen sammeln mit den AD von MS und probiere gerade ein paar Dinge mit dem LoginScript aus, was man ja bei der Anmeldung laufen lassen kann.
ich habe vor in Zukunft die Drucker für die einzelnen Maschienen direkt mit dem Login-Script zuweisen zu lasseb und habe diesbezüglich auch verschiedene Gruppenobjekte in der AD angelegt. Der Gruppenname ist wie folgt aufgebaut "printer" + Druckername -> z.B. printerD1228
Ich prüfe nun noch ab ob der Rechnername oder der User in dieser Printergruppe ist und weise den Drucker entsprechend zu. Das funktioniert soweit auch zuverlässig.
Hier mein KIX-Script:
If (@WKSTA OR @userid) INGROUP("printerD1228")
ADDPRINTERCONNECTION ("\\prints01\D1228")
? "Drucker D1228 wurde erfolgreich angeschlossen"
Endif
Ich will jetzt, dass er sich die Gruppennamen dynamisch aus einer vorgegebenen OU in der AD zieht und diese per Schleife durchläuft und die entsprechenden Drucker zuweist, so dass ich nicht bei einer neuen Druckerinstallation das Login-Script anpassen muss, sondern nur eine neue Gruppe in der AD. Ebenfalls würde dieses auch sehr unübersichtlich werden, wenn die Anzahl der Drucker zunehmen wird. Im Augenblick sind es bei mir 3 Drucker für knappe 25 Clients; tendenz natürlich steigend.
Kann mir jemand von euch weiterhelfen ?
Gruß
Basti
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 87622
Url: https://administrator.de/forum/loginscript-druckerzuweisen-mit-kix-und-gruppenobjekte-in-der-ad-87622.html
Ausgedruckt am: 08.05.2025 um 05:05 Uhr
3 Kommentare
Neuester Kommentar
Hi Basti
ich denke mal du möchtest ein Script laufen lassen die alle Gruppen ausliest in deren der User Mitglied ist. dann ein Script für die Gruppe haben und dann laufen lassen .
ich hattemal ein solches Script welches in einer w2k umgebung säuber läuft, in einer w23 umgebung liest er zwar die Gruppen aus, startet mir aber nicht mehr die Unterscripte .
ich leg es dir mal hier rein , dann kannste mal schauen ob es bei dir läuft.
Du MUSST das Sript nennen wie die Gruppe heisst
beispiel. Uer ist member of 75_zentrale_Drucker, dann muss dein Script 75_zentrale_Drucker.kix heissen.
Viel Glück...
; anmeldescript
break on
cls
; ----Systemzeit synchronisieren -----------------
settime "*"
; ----anzeige des Informationsfesnters -----------
color b/w
box ( 0, 0,24,179,full)
select
case (@time < "11:00:00")
at ( 2,20) "Guten Morgen, " + @userid
case (@time < "18:00:00")
at ( 2,20) "Guten Tag, " + @userid
case 1
at ( 2,20) "Guten Abend, " + @userid
endselect
at ( 4,10) "Sie werden mit Ihren Laufwerken und Druckern verbunden."
at ( 5,10) "Ihre Anmeldung an " + @wksta + " erfolgt über den Domänen-"
at ( 6,10) "kontroller " + @lserver + " und ist in wenigen Sekunden beendet."
at ( 8,19) " Bitte Warten . . ."
sleep 5
color r/W
$TAG_ZEIT = @day+", "+@MDASNO+"." + @year + ", "+@TIME+" UHR"
at (22,40) $TAG_ZEIT
color b+/W
at(10,10) "Anmelde - Status:"
; ? "Calling pre-logon script of user in: " + @homedrive
call @homedrive + "prelogon.kix"
$os=@InWin
IF $os="2"
; sleep 5
gosub w9x
ENDIF
IF $os="1"
gosub XP
ENDIF
:ende
exit
:XP
DO
$GroupMS=ENUMGROUP($index)
$Index=$Index+1
? "Benutzer ist mitglied der Gruppe>" + $GroupMS + "<"
;check if the domain-name is part of the group-string. if yes. erase the preceeding domain-part and use the pure group-name for the script
if InStr($GroupMS,@DOMAIN + "\")>0
$GroupMS=SubStr($GroupMS,Len(@DOMAIN + "\")+1)
? "Suchname ist: >" + $GroupMS + "<"
call $GroupsMS
endif
call $GroupMS
if @16034<>0
Shell Chr(34) + $GroupMS + ".wsf" + Chr(34)
if @16034<>0
Shell Chr(34) + $GroupMS + ".cmd" + Chr(34)
if @16034<>0
Shell Chr(34) + $GroupMS + ".bat" + Chr(34)
endif
endif
endif
Until Len($GroupMS)=0
;Helper
function IsUserMemberOf($GroupMSName)
; check if the user is a member in
$i=0
$GroupIS=""
$Membership=""
DO
$GroupIS=ENUMGROUP($i)
$i=$i+1
$Membership=$Membership+$GroupIS
Until Len($GroupIS)=0
if instr($Membership,$GroupMSName)>0
$RETURN=1 ;return true
else
$RETURN=0 ;return false
Endfunction
sleep 5
call @homedrive + "postlogon.kix"
habe auch noch ein Pre und ein postlogon verwendet welches aus dem Homedrive des benutzers gezogen wird um spezielle Sripte laufen zu lassen.
Gruß
Bachy
ich denke mal du möchtest ein Script laufen lassen die alle Gruppen ausliest in deren der User Mitglied ist. dann ein Script für die Gruppe haben und dann laufen lassen .
ich hattemal ein solches Script welches in einer w2k umgebung säuber läuft, in einer w23 umgebung liest er zwar die Gruppen aus, startet mir aber nicht mehr die Unterscripte .
ich leg es dir mal hier rein , dann kannste mal schauen ob es bei dir läuft.
Du MUSST das Sript nennen wie die Gruppe heisst
beispiel. Uer ist member of 75_zentrale_Drucker, dann muss dein Script 75_zentrale_Drucker.kix heissen.
Viel Glück...
; anmeldescript
break on
cls
; ----Systemzeit synchronisieren -----------------
settime "*"
; ----anzeige des Informationsfesnters -----------
color b/w
box ( 0, 0,24,179,full)
select
case (@time < "11:00:00")
at ( 2,20) "Guten Morgen, " + @userid
case (@time < "18:00:00")
at ( 2,20) "Guten Tag, " + @userid
case 1
at ( 2,20) "Guten Abend, " + @userid
endselect
at ( 4,10) "Sie werden mit Ihren Laufwerken und Druckern verbunden."
at ( 5,10) "Ihre Anmeldung an " + @wksta + " erfolgt über den Domänen-"
at ( 6,10) "kontroller " + @lserver + " und ist in wenigen Sekunden beendet."
at ( 8,19) " Bitte Warten . . ."
sleep 5
color r/W
$TAG_ZEIT = @day+", "+@MDASNO+"." + @year + ", "+@TIME+" UHR"
at (22,40) $TAG_ZEIT
color b+/W
at(10,10) "Anmelde - Status:"
; ? "Calling pre-logon script of user in: " + @homedrive
call @homedrive + "prelogon.kix"
$os=@InWin
IF $os="2"
; sleep 5
gosub w9x
ENDIF
IF $os="1"
gosub XP
ENDIF
:ende
exit
:XP
DO
$GroupMS=ENUMGROUP($index)
$Index=$Index+1
? "Benutzer ist mitglied der Gruppe>" + $GroupMS + "<"
;check if the domain-name is part of the group-string. if yes. erase the preceeding domain-part and use the pure group-name for the script
if InStr($GroupMS,@DOMAIN + "\")>0
$GroupMS=SubStr($GroupMS,Len(@DOMAIN + "\")+1)
? "Suchname ist: >" + $GroupMS + "<"
call $GroupsMS
endif
call $GroupMS
if @16034<>0
Shell Chr(34) + $GroupMS + ".wsf" + Chr(34)
if @16034<>0
Shell Chr(34) + $GroupMS + ".cmd" + Chr(34)
if @16034<>0
Shell Chr(34) + $GroupMS + ".bat" + Chr(34)
endif
endif
endif
Until Len($GroupMS)=0
;Helper
function IsUserMemberOf($GroupMSName)
; check if the user is a member in
$i=0
$GroupIS=""
$Membership=""
DO
$GroupIS=ENUMGROUP($i)
$i=$i+1
$Membership=$Membership+$GroupIS
Until Len($GroupIS)=0
if instr($Membership,$GroupMSName)>0
$RETURN=1 ;return true
else
$RETURN=0 ;return false
Endfunction
sleep 5
call @homedrive + "postlogon.kix"
habe auch noch ein Pre und ein postlogon verwendet welches aus dem Homedrive des benutzers gezogen wird um spezielle Sripte laufen zu lassen.
Gruß
Bachy