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

Lösung falls der Standarddrucker sich bei Citrix verstellt

Anleitung Microsoft Windows Server

Mitglied: Drizzle

Drizzle (Level 1) - Jetzt verbinden

11.07.2008, aktualisiert 30.07.2008, 57765 Aufrufe, 10 Kommentare

Hier die Lösung für folgendes Problem: Windows (2003) Terminal Server, Roaming Profiles, mit Citrix Umgebung und Druckserver.
Wir benutzen sowohl "Fulldesktop", als auch "Shared Applications"
Problem dabei ist: Wenn sich ein Benutzer anmeldet, ist sein Standarddrucker verstellt und stattdessen ist ein willkürlicher Drucker gewählt oder der Citrix "Uniprint"-Drucker.

Nach Wochenlangem Testen und Rumprobieren, habe ich viele Fehlerquellen gefunden und auch beseitigen können. Dass der Drucker sich verstellt, hat folgende Ursachen:

Beim Anmelden auf die Citrixumgebung, erstellt Citrix die Drucker erst, NACHDEM das Profil des jeweiligen Users von Profilserver geladen wurde. Das heisst, dass der Standarddrucker, der im Profil hinterlegt ist, nicht eingestellt werden kann, da er noch gar nicht verfügbar ist.
Stattdessen wird der erste gewählt, der verfügbar ist oder der Drucker "Uniprint".

Damit der Drucker „Uniprint“ nicht als Standarddrucker gesetzt werden soll, müssen folgende Änderungen gemacht werden.
„Regedit“ starten und im Schlüssel:
HKLM\software\microsoft\windows nt\currentversion\winlogon\appsetup
Den Wert „Printerdefault.exe“ löschen.



Dies verhindert, dass der Citrix-eigene Drucker „Uniprint“ beim Anmelden als Standarddrucker gesetzt wird.

Jetzt komme ich zur eigentlichen Lösung. Erst die "einfache/umständliche" Version:

1.)

Jedem User wird ein Anmeldeskript (Batchfile) gegeben, in dem der Standarddrucker eingetragen wird.
Wobei %Standard% der Standarddruckename ist. Einfach die Zeile

rundll32 printui.dll,PrintUIEntry /y /n \\Druckerserver\%Standard% > NUL

im Editor einfügen und z.B.: als "Standarddrucker_Username.bat" speichern.
Jetzt ab ins "Active Directory" und dort dem jeweiligen User wählen. Rechtsklick -> Eigenschaften -> Profile und dann

unter "Logonskript" das jeweilige Skript auswählen. Fertig! Unschöne Lösung, deswegen:

2.)

Natürlich kann man jetzt auch ein Abmeldeskript per GPO einstellen. Dazu im Zweig Benutzerkonfiguration -> Windows Einstellungen -> Skripts (Anmelden/Abmelden) die Eigenschaften von „Abmelden“ konfigurieren und dort ein Skript einfügen, dass den Schlüssel mit dem Standarddrucker exportiert:



regedit /e %HOMESHARE%\Standarddrucker.reg "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\"

Und danach auch die Eigenschaften von „Abmelden“ konfigurieren und dort ein Skript einfügen, dass den Schlüssel mit dem Standarddrucker wieder importiertt:

regedit /s %HOMESHARE%\Standarddrucker.reg

Das war eine sehr schöne Lösung, bis bei mir jemand auf die Idee gekommen ist, dass User ja gar keinen Zugriff auf Registry Tools haben sollten... Da gings erst richtig los. Nach einigen Wochen und tausenden Lösungsversuchen habe ich jetzt folgende Lösung gefunden:

3.)

Im Active Directory die GPO für den Terminalserver öffnen.
Im Zweig Benutzerkonfiguration -> Windows Einstellungen -> Skripts (Anmelden/Abmelden) die Eigenschaften von „Abmelden“ konfigurieren. Auf Hinzufügen klicken und dort die Datei "Standarddrucker.vbs" mit folgendem Inhalt einfügen:

ON ERROR RESUME NEXT

ScriptLogName = "defprinter.log"

strComputer = "."

Set WshShell = WScript.CreateObject("WScript.Shell")
fTMP = WshShell.ExpandEnvironmentStrings("%HOMEDRIVE%")
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set inputFile = fso.OpenTextFile( "M:" & "\" & ScriptLogName, 2, True)

Set objWMIService = GetObject ("winmgmts:\\" & strComputer & "\root\cimv2")
Set colPrinters = objWMIService.ExecQuery ("Select * From Win32_Printer Where Default = TRUE")

For Each objPrinter in colPrinters
inputFile.WriteLine(objPrinter.ShareName)
Next

Dieses Skript erstellt auf dem Homelaufwerk M:\ des Benutzers eine Datei „defprinter.log“.
In dieser Datei wird der beim Abmelden eingestellte Standarddrucker eingetragen.

Jetzt kommt das Anmeldeskript. Aber dieses Skript kann nicht als Anmeldeskript funktionieren, weil ja noch gar keine Drucker vorhanden sind! Also muss man es auf den Terminalservern unter "...Dokumente und EInstellunge\All Users\Startmenu\Autostart" speichern!!! Dort eine (Verknüpfung zu einer) Batch-Datei mit folgendem Inhalt erstellen:

@echo off

:begin
REM Aus der vom Abmeldeskript gespeicherten Datei "defprinter.log" den Drucker extrahieren
for /F %%i in (%HOMEDRIVE%\defprinter.log) do set Standard=%%i
REM Falls kein STandarddrucker eingestellt wurde soll abgebrochen werden
IF "%Standard%" == "" GOTO Druckerwarnung
set /a test=1
:Start
REM Abfrage, ob der Drucker überhaupt schon verfügbar ist
reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices" >> M:\drucker.txt
find /I "\\Druckerserver\%Standard%" M:\drucker.txt
IF %ERRORLEVEL% == 1 GOTO Weiter
Goto End
:Weiter
REM Schleife die 6 Versuche mit 1000 ms Pause abfragt ob der Drucker schon vorhanden ist
PING 1.1.1.1 -n 1 -w 1000 > NUL
echo %test% "von 6 Versuchen"
set /a test=test+1
if %test% == 7 Goto WirklichSchluss
Goto Start
:End
REM Standarddrucker wird hinzugefügt
echo "Drucker wurde erfolgreich hinzugefuegt!"
rundll32 printui.dll,PrintUIEntry /y /n \\BY-DYDSRV\%Standard% > NUL
:WirklichSchluss
echo "Dieses Fenster schliesst sich von selbst..."
del M:\drucker.txt
goto:eof
:Druckerwarnung
"Es ist kein Standarddrucker eingetragen! Bitte Standarddrucker wählen!"
goto:eof

Dadurch wird der Standarddrucker abgefragt und wieder hinzugefügt und zwar ERST WENN ER VERFÜGBAR IST (Deswegen diese 6 Sekunden Verzögerung. EDIT: Habs jetzt bei uns sicherheitshalber auf 10 Versuche erhöht. )
Natürlich müssen für ALLE Ordner, in die von den Skripts Daten gespeichert werden, die Rechte umgestellt werden. Und zwar sollte "Jeder" User dort Lese- und Schreibrechte haben!!!! (MÖGLICHE FEHLERQUELLE!)

Aber wer jetzt denkt, das wars schon, der irrt! :D

Wir haben dann ja noch die Shared Applications eingeführt! SIE VERSTELLEN WIEDER DEN STANDARDDRUCKER!
Und zwar, weil bei ihnen kein Autostart-Skript läuft, da ja die Batch ohne explorer.exe und "Autostart im Startmenü" gar nicht gestartet wird. Jetzt wird aber beim Abmelden das Abmeldeskript ausgeführt und dieses speichert wieder gar keinen Drucker in die defprinter.log... -.-

Lösung:

Die Shared Applications Verknüpfungen sollen nicht auf das Programm verweisen, sondern auf eine Batch-Datei, die das Programm und das Standarddruckerskript startet!!!



Die Batch die gestartet wird, sieht dann zum Beispiel wie folgt aus:

REM Standarddruckerskript ausführen mit call, weil sonst das Batch-Fenster offen bleibt
call T:\Programs\Def_Prin\Def_Prin.bat
REM Programm starten
start "t:\programs\Internet Explorer\iexplore.exe"
exit

Manchmal müssen Programme auch mit "call" statt "start" gestartet werden. (z.B.: MMC.exe)

DAS WARS GLAUBE ICH
Ich hoffe einigen damit geholfen zu haben und wenn ihr Fehler entdeckt, dann sagt mir bescheid und ich korrigiere sie. Habe versucht es verständlich zu formulieren. Fragt, wenn ihr was nicht versteht! So long,

Drizzle

EDIT01: Ich habe die folgenden Zeilen aus dem Anmeldeskript gelöscht, weil sie wohl manchmal dazu führen, dass das Anmeldeskript nicht sauber ausgeführt wird!

REM Fenster minimiert starten
if not "%1"=="" goto %1
start /MIN cmd.exe /C "%~nx0 begin"
goto:eof

Dann ist das Fenster aber leider unschön bei jedem Anmelden zu sehen



EDIT02: Mir ist noch eine Lösung für euch eingefallen, aber da wir mit Thin-Clients arbeiten, funktioniert sie bei uns nicht. Wenn alle User mit Notebooks oder Desktop-PCs arbeiten, kann man auch in der "Citrix Presentation Server Console" folgende Einstellung machen: "Set default printer to the user's default printer"

c78a34332bca65687ce188477adfd82c-unbenannt - Klicke auf das Bild, um es zu vergrößern

Dadurch wird der Drucker, der auf dem Notebook bzw. Desktop-Rechner als Standard gesetzt ist, direkt übernommen.
Mitglied: Schahn
21.07.2008 um 09:03 Uhr
Du bist mein Held heute

Vielen, vielen Dank... Wir hatten schon angefangen, für 300+ User jeweils eine eigene Druckerrichtlinie zu machen *umpf*

Mit freundlichen Grüßen, Schahn
Bitte warten ..
Mitglied: Flash600
22.07.2008 um 21:40 Uhr
Hi,

warum alles so kompliziert?
Es gibt doch Richtlinien in Citrix.
Ich versteh nicht ganz das Problem. Wenn die Richtlinien und Berechtigungen richtig gesetzt sind, müsste es doch klappen.

Mit freundlichen Grüßen
freddy
Bitte warten ..
Mitglied: Drizzle
23.07.2008 um 13:03 Uhr
Kannst mir gerne sagen, wie man die Berechtigungen und Richtlinien richtig setzt. Bei uns hat leider keine Einstellung geholfen, aber vielleicht haben wir etwas übersehen.
Bitte warten ..
Mitglied: Flash600
23.07.2008 um 16:27 Uhr
Es stimmt, dass man an vielen Orten und ganz genau bei Citrix alles kontrollieren muss...
Ich hatte am Anfang selbst eine Menge Probleme mit den sch Druckern.
Ein Fehler (von mir) war, dass auf dem Citrix Server die Drucker installiert waren (also unter Start/Einstellungen/Drucker zu sehen) und dort nur die Standardberechtigungen u.a. "Benutzer - drucken". Und genau deshalb haben bei mir die Citrix-Regeln (zweck Standarddrucker) nicht richtig gegriffen, die Lösung war, auf den Druckern, die auf dem CitrixServer installiert sind, den Benutzern die Berechtigungen zu nehmen, dh. ich habe in den Sicherheitseinstellungen nur mehr den Admin drinnen. Danach griffen die Citrix-Richtlinien ohne Probleme.

Aber natürlich hängt es immer ab, wie, wo was gemappt wird... Bei Citrix muss man noch unter ICA-Protokoll genau kontrollieren, acht geben ob man nicht irgendeine Windows GPO gemacht hat usw..
Jedenfalls die Drucker-konfiguration-zuweisung bei Citrix ist wirklich nicht das gelbe vom Ei...
Bitte warten ..
Mitglied: Schahn
23.07.2008 um 21:09 Uhr
Genau die Richtlinien sind ja das Problem. Wir haben 40 Aussenstellen mit je 3-5 Druckern, die alle am zentralen Druckserver hängen. Ich habe also 40 Richtlinien, die jedem MA einer Aussenstelle die Drucker seiner Aussenstelle verbindet. Allerdings will ja jeder der MA einen der verbundenen Drucker Drucker als Standarddrucker haben. Dafür müsste ich also für jeden der MA eine eigene Richtlinie machen (ca. 300 mit permanentem Pflegeaufwand).

Mit der Lösung von Drizzle kann ich mir das sparen. Jeder Nutzer legt einmal seinen Standarddrucker selber fest und gut.

Einfach perfekt

Mit freundlichen Grüßen, Schahn
Bitte warten ..
Mitglied: Flash600
29.07.2008 um 20:25 Uhr
OK,
stimmt.
Ich werds auch mal testen (wenn ich dazu komme...)
Bitte warten ..
Mitglied: BK
30.07.2008 um 10:59 Uhr
Hallo,

welche Citrix Version? Für z.B. PS 4 gabs da einen Hotfix Rollup Pack PSE400W2K3R01.

http://support.citrix.com/article/CTX107504&searchID=20464753

Damit war bei uns das Problem erledigt. Und jeder hat seinen Standarddrucker und behält ihn auch.

Mit freundlichen Grüßen Beate
Bitte warten ..
Mitglied: Schahn
30.07.2008 um 11:07 Uhr
Der Hotfix betrifft nur die Problematik des Standarddruckers für Clients, die einen solchen bereits eingerichtet haben und der dann in die Session reinverbunden wird.

Das Ganze funktioniert nicht bei Druckern, die erst beim Start der Session per Richtline als Netzwerkdrucker eingebunden werden (also auf dem Client-PC vorher nicht vorhanden sind). Dort ist Citrix meist zu langsam bei der Abarbeitung der Richtlinien, sodass Windows den im Userprofile gespeicherten Standarddrucker noch nicht vorfindet und daher einen beliebigen anderen Drucker als Standard setzt, so wie von Drizzle ganz oben beschrieben.

Es gibt derzeit von Citrix definitiv keine Lösung des Problems.

Mit freundlichen Grüßen, Schahn
Bitte warten ..
Mitglied: sp4c3
04.06.2010 um 11:28 Uhr
Mein Held... nach so langer Zeit geht mir endlich niemand mehr wegen seiner Drucker auf den Geist. DANKE :D
Bitte warten ..
Mitglied: goRaini
04.09.2012 um 10:57 Uhr
Danke für den tollen Beitrag. Auf diese Ideen wäre ich ansatzweise nicht gekommen, bin aber auch neu in Sachen Citrix.
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Windows 10
Citrix Receiver - Benutzernamen speichern (2)

Frage von hendrik.vondankbahr zum Thema Windows 10 ...

Xenserver
Citrix plugin 12.3 upgrade auf Receiver 4.x

Frage von meanmachine zum Thema Xenserver ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...