Top-Themen

Aktuelle Themen (A bis Z)

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

Standarddrucker per PC vorgeben

Mitglied: pixel0815

pixel0815 (Level 1) - Jetzt verbinden

17.12.2014 um 15:31 Uhr, 1581 Aufrufe, 11 Kommentare

Servus zusammen,

ich bin auf der Suche nach einem Programm das den Standarddrucker per PC vergibt.
Der Administrator soll in der Lage sein auf speziellen Arbeitsplätzen den Netzwerkdrucker per Machine zu mappen ( dies wird durch das Programm pmpmgr erledigt und funktioniert wunderbar ).
Danach soll er ggfs. in der Lage sein das jeder Benutzer ( Egal ob er schon abgemeldet war vorher oder nicht ) den Standarddrucker zu setzen und ggfs. andere Einstellungen zu überschreiben auf das was der Admin vorgibt.

2d84d523adae785e8ea5f63b597b4184 - Klicke auf das Bild, um es zu vergrößern

So ein Programm als .net Anwendung existiert bereits.
Das Tool liest die Drucker aus und der Admin kann dann den Drucker definieren.

Das Programm wird in den RUN Schlüssel gesetzt und jeder der sich anmeldet bekommt das Tool in das Systray. Die Einstellungen sollen in der Registry oder eine Konfigurationsdatei abgelegt werden.
Sobald ein Anwender einen anderen Drucker drin hat wie der den der Admin vorgibt, wird die Einstellung auf den Defaultwert zurückgesetzt.

Kann man das auch mittels der Powershell so elegant lösen?

Beste Grüße
Heiko
Mitglied: killtec
17.12.2014 um 15:34 Uhr
Hi,
sind die PC's in einer Domäne? Dann läst sich das ggf. per GPO regeln.

Gruß
Bitte warten ..
Mitglied: pixel0815
17.12.2014 um 15:36 Uhr
Ich weiß, aber aufgrund der Komplexität unserer Umgebung wäre mir das viel zu viel Aufwand das zu pflegen.
Eine GPO Lösung kommt daher nicht in Frage.
Bitte warten ..
Mitglied: colinardo
17.12.2014, aktualisiert um 15:55 Uhr
Hallo Heiko,
Danach soll er ggfs. in der Lage sein das jeder Benutzer ( Egal ob er schon abgemeldet war vorher oder nicht )
deine Frage ist etwas wirr gestellt soll jetzt ein Admin oder der Benutzer den Standarddrucker verstellen können ??
Sobald ein Anwender einen anderen Drucker drin hat wie der den der Admin vorgibt, wird die Einstellung auf den Defaultwert zurückgesetzt.
und hier schreibst du wieder das der User den Drucker doch nicht verstellen darf ? Was ist den jetzt konkret gemeint ?

Kann man das auch mittels der Powershell so elegant lösen?
Sicher, was zahlste bzw was ist euer Budget ?

Grüße Uwe
Bitte warten ..
Mitglied: pixel0815
17.12.2014 um 15:57 Uhr
:o) Bin ja auch wirr im Kopf.
Der Admin gibt die Default Einstellungen vor - der Benutzer kann zwar ändern - erhält aber bisher eine Messagebox mit dem Hinweis das die Änderung blockiert wurde.

Was würde das denn pi mal Daumen kosten?
Bitte warten ..
Mitglied: colinardo
17.12.2014 um 16:02 Uhr
Zitat von pixel0815:

:o) Bin ja auch wirr im Kopf.
Der Admin gibt die Default Einstellungen vor - der Benutzer kann zwar ändern - erhält aber bisher eine Messagebox mit dem Hinweis das die Änderung blockiert wurde.
was ist dann der Zweck der Box, wenn Ihn der User sowieso nicht ändern kann ??

Was würde das denn pi mal Daumen kosten?
je nach Anforderung/Lastenheft
Bitte warten ..
Mitglied: pixel0815
17.12.2014 um 16:10 Uhr
Auf den PCs gibts mehrere Drucker lokal sowie per Netzwerk gemappte vom Printserver.
Es wird ja auf Citrix gearbeitet und da sind im KIS System einige spezielle Einstellungen in Formularen die auf dem Standarddrucker basieren.
Es ist ja leider nicht immer gewährleistet das der "richtige" Drucker bei der Anmeldung des Benutzers ausgewählt ist.
Bitte warten ..
Mitglied: colinardo
18.12.2014, aktualisiert 19.12.2014
Hallo Heiko,
vielleicht bringt dich schon folgendes Script deinem Ziel näher. Es überwacht den Registryeintrag in dem der Default-Drucker für den User abgelegt wird. Ändert sich dieser wird geprüft ob dieser den Vorgaben entspricht und wenn nicht wird sofort der Standarddrucker auf Vorgaben zurückgesetzt.
Das Script nutzt dazu einen Registry-Event-Subscriber der immer nur dann feuert, wenn sich ein Registry-Key in einem bestimmten Pfad ändert.

Die Standardvorgaben für den Standard-Drucker kannst du ja dann nach deinen Belieben aus einer Datei/Registry/DB/XML/CSV/etc. auslesen.

Für das Beispiel werden sie aus einer CSV-Datei ausgelesen die so definiert ist:
"Computername";"DefaultPrinter" 
"PC01";"HP Laserjet 1320" 
"PC02";"HP-Color-Laserjet" 
"DEFAULT","[Druckername der gesetzt wird wenn für einen Rechner keiner definiert ist]"
Powershell-Script setzt den Standard-Drucker, wenn dieser geändert wird, auf einen Drucker nach Vorgabe für den jeweiligen Rechner zurück
01.
# Vorgaben aus CSV-Datei importieren 
02.
$dataImport = Import-CSV "\\Server\Share\settings.csv" -Delimiter ";" 
03.
 
04.
# Standarddrucker anhand des Computernamens aus der CSV ermitteln 
05.
$defaultPrinter = $dataImport | ?{$_.Computername -eq $env:COMPUTERNAME} | select -Expand DefaultPrinter 
06.
 
07.
If (!$defaultPrinter){ 
08.
  # hier einen Alternativ-Standard-Drucker definieren für den Fall das für den Rechner kein Drucker hinterlegt ist 
09.
  $defaultPrinter =  $dataImport | ?{$_.Computername -eq "DEFAULT"} | select -Expand DefaultPrinter 
10.
11.
 
12.
# ============================ 
13.
$usersid = (New-Object System.Security.Principal.NTAccount($env:USERNAME)).Translate([System.Security.Principal.SecurityIdentifier]).Value 
14.
$key = "$usersid\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Windows" 
15.
$deviceKey = "HKCU:\Software\Microsoft\Windows NT\CurrentVersion\Windows" 
16.
 
17.
# Action wird ausgeführt sobald sich der Registrykey ändert 
18.
$action = { 
19.
    $obj = $Event.SourceEventArgs.NewEvent 
20.
    $currentDevice = (Get-ItemProperty $deviceKey -Name "Device").Device.Split(",")[0] 
21.
    if ($defaultPrinter -ne $currentDevice){ 
22.
        Try{ 
23.
            $printer = gwmi Win32_Printer | ?{$_.Name -eq $defaultPrinter} 
24.
            if ($printer){ 
25.
                $printer.SetDefaultPrinter() 
26.
                write-host "Der Default-Drucker wurde auf den definierten Standard zurückgesetzt!" -ForegroundColor Yellow 
27.
            }else{ 
28.
                write-host "Der Drucker '$defaultPrinter' existiert nicht" -ForegroundColor Red 
29.
30.
             
31.
        }catch{ 
32.
            write-host "Beim setzen des Standarddruckers ist ein Fehler aufgetreten: $($_.Exception.Message)" -ForegroundColor Red 
33.
34.
35.
36.
Register-WmiEvent -Query "Select * From RegistryKeyChangeEvent WHERE Hive='HKEY_USERS' AND KeyPath='$key'" -SourceIdentifier "DefaultPrinterWatcher" -Action $action | out-null 
37.
 
38.
While($true){ 
39.
    sleep(1) 
40.
41.
 
42.
# ACHTUNG Zum Beenden der Event-Subscription in der aktuellen Session folgenden Befehl ausführen 
43.
# Get-EventSubscriber | Unregister-Event
Zu beachten ist, das wenn man den Loop beim Testen mit STRG + C abbricht, man auch den Event-Subscriber beenden sollte (siehe Hinweis am Ende des Scripts).

Grüße Uwe

Falls der Beitrag gefällt, seid so nett und unterstützt mich durch eine kleine Spende / If you like my contribution please support me and donate
Bitte warten ..
Mitglied: pixel0815
19.12.2014 um 14:53 Uhr
Wahnsinn :o) Das ist ja richtig nett von dir.
Ich habe allerdings ein Problem festgestellt.
Der Drucker wird nicht gesetzt. Ich bekomme immer die Meldung "Der Drucker xyz existiert nicht".
Der Drucker existiert aber definitiv. Wenn ich mir einfach über WMI die win32_printer anzeigen lasse, finde ich den Namen dort unter "Name".
Hast du da ne Idee?
Bitte warten ..
Mitglied: colinardo
19.12.2014, aktualisiert 20.12.2014
Zitat von pixel0815:

Wahnsinn :o) Das ist ja richtig nett von dir.
Ich habe allerdings ein Problem festgestellt.
Der Drucker wird nicht gesetzt. Ich bekomme immer die Meldung "Der Drucker xyz existiert nicht".
Der Drucker existiert aber definitiv. Wenn ich mir einfach über WMI die win32_printer anzeigen lasse, finde ich den Namen
dort unter "Name". Hast du da ne Idee?
dann hast du ihn vermutlich nicht exakt richtig geschrieben ...
Bitte warten ..
Mitglied: pixel0815
19.12.2014 um 15:48 Uhr
Ich schwöre :o) Hab sogar kopiert.

01.
Die Anfrage ist ungültig. "select * from Win32_Printer where Name = '\\prrz001\WE_EDV_1OG_DC2930'" 
02.
An C:\Powershell AD\Standardducker.ps1:Zeile:23 Zeichen:24 
03.
+             $printer = g <<<< wmi Win32_Printer -Filter "Name = '$defaultPrinter'" 
04.
 
05.
 
06.
Der Drucker '\\prrz001\WE_EDV_1OG_DC2930' existiert nicht
Das kommt immer wieder
Bitte warten ..
Mitglied: colinardo
19.12.2014, aktualisiert um 15:55 Uhr
Stichwort WMI-Filter: Dort sind Backslashes immer zu verdoppeln ich ändere das noch ab, hatte ich nicht dran gedacht sorry ..

-edit- ist schon abgeändert ...jetzt musst du die Slashes nicht mehr verdoppeln.
Bitte warten ..
Ähnliche Inhalte
Windows Server
Standarddrucker auf Terminalserver
Frage von DeeJayBeeWindows Server4 Kommentare

Hallo, Auf unserem Terminalserver 2008 R2 wird bei Benutzern der durchgeleitete Drucker automatisch immer als Standarddrucker festgelegt. Kann man ...

Windows Server
Standarddrucker - Terminalserverumgebung
Frage von LinuZzzWindows Server13 Kommentare

Hallo zusammen, ich habe ein Problem in einer Terminalserverumgebung mit 3 Windows Server 2012 R2 Terminalservern auf welche von ...

Windows Server
Standarddrucker nicht gefunden
Frage von DeeJayBeeWindows Server1 Kommentar

Hallo, ein seltsames Thema hab ich hier. Die Kollegen aus der Buchhaltung haben mit Ihrem Programm das Problem, dass ...

CMS

EGroupware Benachrichtigung einen Betreff vorgeben?

Frage von D1Ck3nCMS

Hallo zusammen, ich habe mal eine kleine Frage zur eGroupware Community Edition 1.8: Jeder der zu einem Termin eingeladen ...

Neue Wissensbeiträge
Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 6 StundenSicherheit

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 16 StundenInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 1 TagErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 1 TagWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Heiß diskutierte Inhalte
Server
Route-Befehl Unterstützung (unter CMD)
gelöst Frage von FKRR56Server36 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...

Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1028 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgbornMicrosoft17 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Webbrowser
Welcher Browser ist der Beste?
Frage von justtinWebbrowser15 Kommentare

Hallo Leute Ich habe eine interessante Frage. Mich wurde mal interessieren welcher Browser ist eure meinung nach der beste? ...