syosse
Goto Top

Problem mit Standarddrucker auf RDS. GPO nur nach manuellem gpupdate

Hallo zusammen,

ich habe aktuell ein Problem mit dem RDS-Server und der Standarddruckerauswahl, das zunehmend frustrierend wird. Ich habe schon etliche Einträge gelesen und die Lösungen versucht, leider besteht das Problem immer noch . Jedesmal wenn sich ein Benutzer ab- und wieder anmeldet oder die Sitzung trennt und erneut verbindet, ändert sich der Standarddrucker. Der Standarddrucker sollte jedoch unabhängig von An- und Abmeldungen, Verbindungsabbrüchen oder Serverneustarts konstant der selbe bleiben.

Folgendes habe ich bereits versucht:

Deaktivierung der Option "Windows soll den Standarddrucker verwalten".
Deaktivierung der Druckerverwaltung und Änderung folgender Registrierungseinstellungen:
Pfad: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider\
Erstellen eines neuen DWORD-Werts (32-bit) mit dem Namen RemovePrintersAtLogoff und dem Wert 0.

Leider hat dies das Problem nicht gelöst. Daraufhin habe ich eine GPO erstellt, um den Standarddrucker festzulegen. Die GPO wird jedoch nicht automatisch beim Benutzeranmeldung angewendet; sie funktioniert nur, wenn ich manuell gpupdate über die Eingabeaufforderung ausführe. Wenn ich Gpresult /r ausführe sehe ich das der GPO angewendet wird.

Wie kann ich dieses Problem am besten lösen? Sollte ich ein Skript erstellen, das gpupdate beim Start ausführt, und es im Autostart-Ordner platzieren, damit die GPO bei jeder Anmeldung angewendet wird oder soll ich mit einem Script arbeitet das den Drucker automatisch auf Standartdrucker einstellt ?

Vielen Dank für eure Hilfe!

Content-ID: 668155

Url: https://administrator.de/contentid/668155

Ausgedruckt am: 19.12.2024 um 11:12 Uhr

Delta9
Delta9 16.09.2024 aktualisiert um 10:35:15 Uhr
Goto Top
Leider hat dies das Problem nicht gelöst. Daraufhin habe ich eine GPO erstellt, um den Standarddrucker festzulegen. Die GPO wird jedoch nicht automatisch beim Benutzeranmeldung angewendet; sie funktioniert nur, wenn ich manuell gpupdate über die Eingabeaufforderung ausführe. Wenn ich Gpresult /r ausführe sehe ich das der GPO angewendet wird.

Das kann gut ein Timing Problem sein. Die GPO wird schneller ausgeführt als Windows die Drucker verbunden hat.

Evtl ein logoff Script schreiben das sich den aktuellen Standarddrucker z.b. in einem eigenen Registryparameter merkt, und dann in einem Logon Script den Standarddrucker setzten.

Logon.ps1:
<#
.SYNOPSIS
    This Script read the "Defaultprinter" from  Registry Key ( HKCU\SOFTWARE\MyCompany) and set the corresponding PrinterObject as default  
.DESCRIPTION
    
.NOTES
    File Name      : Printer_logon.ps1
    Author         : 
    Prerequisite   : PowerShell V2 over Vista and upper.
    
.Remark
    13.09.2019 initial Release
#>



if (test-path HKCU:\SOFTWARE\MyCompany)
{ 
$DefPrinter=get-ItemProperty -Path HKCU:\Software\MyCompany\ -Name DefaultPrinter
$Counter = 0

do {
    Start-Sleep -Seconds 1
    $PRexisit  = (get-wmiobject Win32_Printer ).name -like $DefPrinter.DefaultPrinter 
     $Counter = $Counter + 1
}while($PRexisit.Length -eq 0   -and  $Counter -le 10 ) 

if ($PRexisit.Length -ge 0)
{ 
(New-Object -ComObject WScript.Network).SetDefaultPrinter($DefPrinter.DefaultPrinter)
$Messagetext = $env:Username + " Standartdrucker gesetzt:  " + $DefPrinter.DefaultPrinter + " / " + $Counter + " Versuche"   
write-eventlog    -entrytype "Information"    -logname "Application"    -eventID 1    -Source 'MyCompany'    -Category 0    -Message $messagetext  
}


}

 $CheckPrinter  = (get-wmiobject Win32_Printer ).name -like $DefPrinter.DefaultPrinter

#creating object os WScript
 $wshell = New-Object -ComObject Wscript.Shell -ErrorAction Stop
#invoking the POP method using object
 $wshell.Popup("Ihr Standartdrucker ist: " + $CheckPrinter ,5,"Standartdrucker von " + $env:Username ,0)  

Logoff.ps1:

<#
.SYNOPSIS
    This Script writes the Defaultprinter into the Registry Key in HKCU\SOFTWARE\MyCOmpany
.DESCRIPTION
    
.NOTES
    File Name      : Printer_logoff.ps1
    Author         : 
    Prerequisite   : PowerShell V2 over Vista and upper.
    
.Remark
    13.09.2019 initial Release
    27.09.2019 Anpassung für den Fall: Kein Standartdrucker gesetzt / auslesbar
    20.01.2022 Erweiterung um Unterscheidung Remoteapp oder Fill Desktop via Clientname
#>

if ($env:clientname -like '*' -or $env:clientname -like 'UD-Pocket*' ) {  

        $DefPrinter = (get-wmiobject Win32_Printer -filter "Default=TRUE").Name   

        if ($DefPrinter)
        {
                if (test-path HKCU:\SOFTWARE\MyCOmpany)
                    { 
                            Set-ItemProperty -Path HKCU:\Software\MyCOmpany\ -Name DefaultPrinter -Value $DefPrinter 
                    }
                    else 
                    {
                            $DefPrinter = (get-wmiobject Win32_Printer -filter "Default=TRUE").Name  
                            
                            New-Item -Path HKCU:\SOFTWARE\MyCOmpany 
                            New-ItemProperty -Path HKCU:\SOFTWARE\MyCOmpany -Name DefaultPrinter -PropertyType String 
                            Set-ItemProperty -Path HKCU:\Software\MyCOmpany\ -Name DefaultPrinter -Value $DefPrinter 
                    }

                $Messagetext = $env:Username + " Standartdrucker:  " + $DefPrinter + " in Registry gespeichert "  
                write-eventlog    -entrytype "Information"    -logname "Application"    -eventID 2    -Source 'MyCOmpany'    -Category 0    -Message $messagetext  

        }
        else 
        {
            $Messagetext = $env:Username + " Standartdrucker nicht in Registry gespeichert "  
            write-eventlog    -entrytype "Information"    -logname "Application"    -eventID 3    -Source 'MyCOmpany'    -Category 0    -Message $messagetext  
        }
}
else {
        $Messagetext = $env:Username + " Standartdrucker für Remoteappuser  nicht in Registry gespeichert "  
        write-eventlog    -entrytype "Information"    -logname "Application"    -eventID 99    -Source 'MyCOmpany'    -Category 0    -Message $messagetext  
}
Syosse
Syosse 16.09.2024 um 11:23:32 Uhr
Goto Top
Zitat von @Syosse:

Hallo zusammen,

ich habe aktuell ein Problem mit dem RDS-Server und der Standarddruckerauswahl, das zunehmend frustrierend wird. Ich habe schon etliche Einträge gelesen und die Lösungen versucht, leider besteht das Problem immer noch . Jedesmal wenn sich ein Benutzer ab- und wieder anmeldet oder die Sitzung trennt und erneut verbindet, ändert sich der Standarddrucker. Der Standarddrucker sollte jedoch unabhängig von An- und Abmeldungen, Verbindungsabbrüchen oder Serverneustarts konstant der selbe bleiben.

Folgendes habe ich bereits versucht:

Deaktivierung der Option "Windows soll den Standarddrucker verwalten".
Deaktivierung der Druckerverwaltung und Änderung folgender Registrierungseinstellungen:
Pfad: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider\
Erstellen eines neuen DWORD-Werts (32-bit) mit dem Namen RemovePrintersAtLogoff und dem Wert 0.

Leider hat dies das Problem nicht gelöst. Daraufhin habe ich eine GPO erstellt, um den Standarddrucker festzulegen. Die GPO wird jedoch nicht automatisch beim Benutzeranmeldung angewendet; sie funktioniert nur, wenn ich manuell gpupdate über die Eingabeaufforderung ausführe. Wenn ich Gpresult /r ausführe sehe ich das der GPO angewendet wird.

Wie kann ich dieses Problem am besten lösen? Sollte ich ein Skript erstellen, das gpupdate beim Start ausführt, und es im Autostart-Ordner platzieren, damit die GPO bei jeder Anmeldung angewendet wird oder soll ich mit einem Script arbeitet das den Drucker automatisch auf Standartdrucker einstellt ?

Vielen Dank für eure Hilfe!


Super Vielen Dank.
Werde ich gleich nacher anschauen.