So ändern Sie das Verhalten von Druckern mit Roamingprofilen

In diesem Artikel wird beschrieben, wie Sie ein Verhalten von Druckern ändern, die roaminggespeicherte Profile verwenden.

Ursprüngliche Produktversion:   Windows 10 – alle Editionen
Ursprüngliche KB-Nummer:   304767

Wichtig

Dieser Artikel enthält Informationen zum Ändern der Registrierung. Bevor Sie die Registrierung ändern, müssen Sie sie sichern, und stellen Sie sicher, dass Sie wissen, wie die Registrierung wiederhergestellt wird, wenn ein Problem auftritt. Informationen zum Sichern, Wiederherstellen und Bearbeiten der Registrierung finden Sie unter der folgenden Artikelnummer, um den Artikel in der Microsoft Knowledge Base zu sehen:

256986 Beschreibung der Microsoft Windows-Registrierung

Zusammenfassung

Wenn ein Benutzer ein Roamingprofil verwendet, wird der Standarddrucker dieses Benutzers standardmäßig mit dem Benutzerprofil verwendet. In einigen Umgebungen ist dies jedoch möglicherweise nicht das gewünschte Verhalten. Dieser Artikel enthält Methoden, mit deren Unterstützung Sie dieses Verhalten ändern können.

Weitere Informationen

Warnung

Wenn Sie den Registrierungseditor falsch verwenden, können schwerwiegende Probleme auftreten, die eine Neuinstallation des Betriebssystems erforderlich machen können. Microsoft kann nicht garantieren, dass Sie Probleme beheben können, die sich aus der fehlerhaften Verwendung des Registrierungs-Editors resulten. Verwenden Sie den Registrierungs-Editor auf eigenes Risiko.

Wichtig

Die Informationen in diesem Artikel sind für die Verwendung durch Unternehmensadministratoren vorgesehen. Bevor Sie eine der in diesem Artikel beschriebenen Methoden in Ihrer Umgebung verwenden, sollten Sie die Methode sorgfältig in einer Testumgebung testen.

Drucker sind für Roaming mit dem Roamingprofil eines Benutzers ausgelegt. Daher wird der Standarddrucker unter dem HKEY_CURRENT_USER der Registrierung gespeichert. Verwenden Sie eine der folgenden Methoden, um dieses Verhalten zu ändern.

Methode 1

Exportieren Sie die Standarddruckereinstellung für einen bereits installierten Drucker, und führen Sie die Einstellung dann in das Profil des Benutzers ein, wenn sich der Benutzer am Computer anmeldet:

  1. Verwenden Sie den Registrierungs-Editor (Regedit.exe), um den folgenden Registrierungsschlüssel zu exportieren:

    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows

  2. Ändern Sie die Registrierungsdatei (REG), die Sie in Schritt 1 mit einem Texteditor erstellt haben, so, dass der einzige Registrierungswertname unter dem Schlüssel ist:

    "Device"=...

    Hinweis

    Die Registrierungsdatei sollte eine leere Zeile am Ende der Datei enthalten.

  3. Verwenden Sie den Registrierungs-Editor (Regedit.exe), um einen neuen ResetPrinter-Zeichenfolgenwert unter dem folgenden Registrierungsschlüssel hinzuzufügen:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

  4. Der Wert des Werts "ResetPrinter" sollte etwa dem folgenden Wert ähneln:

    REGEDIT.EXE -S path \ File.reg
    Wobei File.reg der Name ist, den Sie zum Speichern des Standarddruckers verwendet haben.

Methode 2

Wenn Computer in einem bestimmten Bereich ähnliche Computernamen enthalten, können Sie eine .vbs-Skriptdatei verwenden, die einem bestimmten Satz von Zeichen im Computernamen entspricht, und einen entsprechenden Drucker installieren. Der beispielcode, der in dieser Methode enthalten ist, erfordert nur, dass Sie die ZEILEN IF ändern. Die erste "IF"-Anweisung im Code wird beispielsweise in "wenn der Computername den Text "LAB1-" enthält, übersetzt, und legen Sie dann den Standarddrucker auf " \ \ LAB1 \ LaserJet" ein. So schließen Sie diese Methode ab:

  1. Kopieren Sie den folgenden Beispiel-VBS-Code in einen Code. vbs-Datei, z. B. Defaultprinter.vbs:

    Option Explicit
    DIM RegEntry, ComputerName
    
    RegEntry="HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName\ComputerName" ComputerName = ReadRegValue(RegEntry)
    
    if InStr(1,ucase(ComputerName),"LAB1-",vbTextCompare) > 0 then call SetPrinter("\\LAB1\LaserJet")
    if InStr(1,ucase(ComputerName),"LAB2-",vbTextCompare) > 0 then call SetPrinter("\\LAB2\LaserJet")
    if InStr(1,ucase(ComputerName),"OFFICE-",vbTextCompare) > 0 then call SetPrinter("\\OFFICE\LaserJet")
    'so on and so forth.
    wscript.quit
    
    '*** This subroutine installs and sets the default printer
    Sub SetPrinter(ByVal PrinterPath)
        DIM WshNetwork
        Set WshNetwork = CreateObject("WScript.Network")
        WshNetwork.AddWindowsPrinterConnection(PrinterPath)
        WshNetwork.SetDefaultPrinter Printerpath
    end sub
    
    '**** This function returns the data in the registry value
    Function ReadRegValue(ByVal RegValue)
        DIM WSHShell
        Set WSHShell = WScript.CreateObject("WScript.Shell")
        ReadRegValue=""
        On Error Resume Next
        ReadRegValue= WSHShell.RegRead(RegValue)
    End Function
    
  2. Ändern Sie nach Bedarf die IF-Zeilen. Der einzige Teil der IF-Zeilen, die geändert werden müssen, ist zwischen doppelten Anführungszeichen. Möglicherweise müssen Sie zusätzliche "IF"-Zeilen hinzufügen.

  3. Verwenden Sie den Registrierungs-Editor, um einen ResetPrinter-Zeichenfolgenwert unter dem folgenden Registrierungsschlüssel zu erstellen:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

  4. Der Wert von ResetPrinter sollte etwa dem folgenden Wert ähneln:

    WSCRIPT.EXE Pfad \DefaultPrinter.vbs
    Dabei ist der Pfad der Speicherort, an dem Defaultprinter.vbs datei gespeichert ist.

Hinweis

Es ist auch möglich, die Defaultprinter.vbs aus einem Anmeldeskript anstelle des Ausführungsschlüssels auszuführen. Mit beiden methoden, die in diesem Artikel beschrieben werden, wird der Standarddrucker zurückgesetzt, auf den das Benutzerprofil gedruckt werden soll. Wenn das beispielskript, das in diesem Artikel enthalten ist, nicht ordnungsgemäß ausgeführt wird, müssen Sie möglicherweise den Windows Scripting Host aktualisieren oder installieren.

Die Verwendung der hier aufgeführten Informationen, Makro- oder Programmcodes geschieht auf Ihre eigene Verantwortung. Microsoft stellt Ihnen diese Informationen sowie Makro- und Programmlistings ohne Gewähr auf Richtigkeit, Vollständigkeit und/oder Funktionsfähigkeit sowie ohne Anspruch auf Support zur Verfügung. Die zur Verfügung gestellten Makro- und Programmierungsbeispiele sollen lediglich exemplarisch die Funktionsweise des Beispiels aufzeigen. Die Microsoft Support-Spezialisten können bei der Erläuterung der Funktionalität bestimmter Prozeduren helfen, jedoch werden sie diese Beispiele nicht in Bezug auf eine erweiterte Funktionalität verändern, noch werden sie Prozeduren entwickeln, die auf Ihre besonderen Bedürfnisse zugeschnitten sind.