Terminalserver/RDS 2016: Falscher Standarddrucker bei manchen Anwendungen

Problem:
Wir haben seit längerem das Problem, dass auf Terminalserver basierend auf Server 2016 der Standarddrucker nicht korrekt gesetzt wird. Das passiert aktuell inicht bei allen Anwendungen sondrn nur bei älteren Applikationen. Nach etwas Recherche hat sich herausgestellt, dass sich beim Server 2016 bzgl. des Standarddruckers in der Registry etwas geändert hat und einige ältere Applikationen den neuen Pfad nicht abfragen bzw. mit einer alten Routine hier den Standarddrucker ermitteln.

Ursache:
Früher war der Standarddrucker hier gesetzt:
HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\Devices

Neu seit Server 2016 ist es dieser Pfad, der sich immer wieder ändert:
HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\SessionDefaultDevices\S-1-5-5-0-xxxxxxxxx

Lösung:
Da wir die problematischen Anwendungen nicht selbst ändern konnten und der Hersteller das Problem nicht lösen wollte/konnte, mussten wir uns etwas einfallen lassen. Ich habe hierzu ein Skript gefunden, welches den Standarddrucker aus dem neuen Pfad ausliest und dann im alten Pfad setzt.
Folgendes habe ich dazu eingerichtet:

1.) Das Skirpt zum Auslesen und Setzen des Standarddruckers:
Option Explicit
 On Error Resume Next
 Const HKCU = &H80000001
 Dim strComputer, objReg, strOrigPath, strNewPath, arrKeys, strKey, strPrinter

strComputer = "."
 Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ 
  strComputer & "\root\default:StdRegProv")
 strOrigPath = "Software\Microsoft\Windows NT\CurrentVersion\Windows\SessionDefaultDevices"
 strNewPath = "Software\Microsoft\Windows NT\CurrentVersion\Windows"

objReg.EnumKey HKCU, strOrigPath, arrKeys
 For Each strKey In arrKeys
     objReg.GetStringValue HKCU, strOrigPath & "\" & strKey, "Device", strPrinter
     If strPrinter <> vbNull Then
      objReg.SetStringValue HKCU, strNewPath, "Device", strPrinter
     End If
 Next

Set strComputer = Nothing
 Set objReg = Nothing
 Set strOrigPath = Nothing
 Set strNewPath = Nothing
 Set arrKeys = Nothing
 Set strKey = Nothing
 Set strPrinter = Nothing


Ich habe dann die Applikation über eine Batch-Datei starten lassen und darin das VBS zusätzlich laufen lassen:

REM Startskript für Applikation
start \\server\freigabe\anwendung.exe

REM Kurze Wartezeit um RDS-Session aufzubauen und Drucker zu mappen
ping 127.0.0.1 -n 10 > nul

REM Setzen des Default-Printers im Legacy Registrykey
start \\server\freigabe\set_printer.vbs


Quellen zur Lösung:
RemoteApp Default Printer Redirection Not Working in Server 2016
Default Printer not Mapped Properly within ICA Session

VMWare Hypervisior 6.7 installieren mit RTL 8111 Treiber

Ich habe hier eine alte Workstation mit einem Intel-I5 und einer Realtek RTL8111 als Netzwerkkarte. Dieser Chipset wird leider von VMWare nicht out of the Box unterstützt. Aber der Macher der Seite v-front.de hat sich hier etwas einfallen lassen ... DANKE dafür

Wir bauen uns einfach selbst ein Image das diese Treiber integriert hat.

Starten der Powershell als Administrator und ausführen der VMWare CLI Installation
Install-Module -Name VMware.PowerCLI

VMWare Powershell Modul
Laden der Treiber von v-front und bauen der ISO Datei
powershell.exe -noprofile -executionpolicy bypass -file .\ESXi-Customizer-PS-v2.6.0.ps1 -v67 -vft -load net55-r8168

RTL8111 Treiber integrieren und iso bauen

Quellen :
https://www.v-front.de/p/esxi-customizer-ps.html
https://communities.vmware.com/community/vmtn/automationtools/powercli
https://vibsdepot.v-front.de/wiki/index.php/List_of_currently_available_ESXi_packages
https://www.vmware.com/de/products/vsphere-hypervisor.html

Terminalserver 2016 (RDS): PDF-Dateien können nicht mit dem Adobe Reader DC geöffnet oder gedruckt werden

Problem:
Nach der Installation des Adobe Readers DC auf einem Terminalserver 2016 konnten die PDFs aus dem eigenen TEMP-Ordner geöffnet werden. Mein erster Verdacht waren die neuen VHD-Profiles.

Lösung:
Des Rätsels Lösung war ganz einfach. Es ist der "Geschütze Modus" (Potected Mode) des Adobe Readers. Scheinbar macht das schon immer Probleme auf einem Terminalserver. Man kann die Funktion testweise bei einem Benutzer mal auscahlten:
- Wählen Sie Bearbeiten > Voreinstellungen.
- Wählen Sie auf der linken Seite unter Kategorien die Option Sicherheit (erweitert).
- Deaktivieren Sie im Abschnitt Sandbox-Schutz die Option Geschützten Modus beim Start aktivieren.

Um das Problem für alle Benutzer zu lösen, kann man einen Registry-Key per GPP ausstreuen:
Keypath: HKLM\SOFTWARE\Wow6432Node\Policies\Adobe\Acrobat Reader\DC\FeatureLockDown
Value name: bProtectedMode
Value type: REG_DWORD
Value data: 0

Damit wird der "geschützte Modus" deaktiviert und das Öffnen und Drucken soltle problemlos funktionieren!

Quelle: FAQ-O-MATIC: Terminalserver: Den Protected Mode des Adobe Reader X abschalten

RDP: Wie setzt man eine RDP-Sitzung remote zurück (cmd - Session Reset)

Problem:
Ich hatte eine RDP-Session, die sich "verrannt" hat und ich konnte auch keinen weiteren Benutzer mehr anmelden.
Stattdessen lese ich folgende Meldung beim Anmeldebildschirm:
"Der angeforderte Vorgang konnte nicht ausgeführt werden, da die Remotedesktopdienste derzeit ausgelastet sind. Versuchen Sie es in einigen Minuten noch einmal. Andere Benutzer können sich normalerweise weiterhin anmelden."

Die Anmeldung mit einem anderen Benutzer ist ebenfalls nicht möglich.
Wie komme ich jetzt an den Server um die Session zurückzusetzen?

Lösung:
Man kann von einem anderen Server/Client aus die Session per Kommandozeile ermitteln und zurücksetzen.
WICHTIG: SIE BENÖTIGEN EINEN BENUTZER, DER ADMINISTRATOR-RECHTE AUF DEM BETROFFENEN SERVER HAT!

1.) Melden Sie sich mit dem administrativen Benutzer an einem anderen Server/Client an

2.) Führen Sie den Befehl "query session /server:" aus, wobei Sie für den Namen des betroffenen Servers eintragen.

3.) In der Ausgabe sollten sie die betroffene Session sehen - merken Sie sich die entsprechende SESSION-ID

5.) Nun setzen Sie die betroffene RDP-Sitzung mit folgendem Befehl zurück: "reset session >SESSION-ID> /server:"
Wobei die Session-ID und der Servername mit den jeweiligen richtigen Werten ersetzt werden müssen.

6.) FERTIG - Die Session wird nun zurückgesetzt - das kann einige Minuten dauern!

Sollte der Fehler häufiger auf Server 2008R2 auftreten, dann gibt es von Microsoft einen Hotfix.
Hier scheint es ein Problem zu geben zwischen dem Prozess csrss.exe und manchen Anwendungen.
Microsoft: KB2661332 - Sie können keine Remotedesktopdienste-Sitzung auf einem Windows Server 2008 R2-basierten Server wiederherstellen.

Quelle:
rodolfovaraujo: How to kill RDP sessions remotely

VmWare ESXi 4.1 - Windows 2012 R2 Server - CRITICAL_STRUCTURE_CORRUPTION

Problem :
Windows Server 2008 R2 / Windows 8.1 / Windows Server 2012R2 startet auf einer ESXi 4.1 nicht richtig. Es kommt immer zu einem Bluescreen mit der Information CRITICAL_STRUCTURE_CORRUPTION

Lösung :

Ein Update für ihre ESXi Maschine kann dieses Problem beheben.
Da es sich in meinem Fall um einen ESXi 4.1 handelte hier der andere Weg.
Ein Workarround ist eine eigene CPUID Mask für die betroffene Maschine zu erstellen.

1.) ausschalten der betroffenen virtuellen Maschine
2.) Einstellungen der vm bearbeiten
3.) Auf das Register Optionen wechseln
4.) auf CPUID Mask klicken
5.) auf Erweitert klicken und eine CPUMASKID eintragen

Für Intel CPU den Wert unter Level 80000001.edx auf ----:0---:----:----:----:----:----:---- ändern
Für AMD Cpu den Wert unter Level 80000001.edx auf ----0--------------------------- ändern




Quelle :
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2060019
“Sicher ist, dass nichts sicher ist. Selbst das nicht.”
Joachim Ringelnatz