Windows Server 2012/2012R2 RDS und/oder Windows 8/8.1/10 hängen bei „abmelden“ ewig fest

Problem

Wir sehen öfter den Fehler, das ein Windows Server 2012 RDS Session Host beim abmelden hängenbleibt. Das auch gerne ausdauernd lange. Dieses Verhalten lässt sich reproduzieren, wenn das Kennwort des angemeldeten Benutzers geändert wird.

Lösung

Das liegt (meist) an dem fehlenden Fix KB3132080, der diesen Effekt zwar behebt, aber andere Probleme mitbringt.

Es geht für den schnellen Admin aber auch manuell und flott, wenn man einfach die hängenden RDP-Sessions manuell beendet.

CMD-Session auf dem betroffenen Host öffnen:
C:\> psexec \\<MEINSERVER> cmd

offene RDP-Sessions auflisten:
C:\Windows> query session

offene RDP- Session beenden
logoff <ID>

vSphere Gastinformationen im vCenter manuell aktualisieren

In einen VMware Gast gehören idealerweise möglichst aktuelle VMware Tools installiert und gestartet. Denn nur dann gibt es zusätzliche Funktionen wie die Guest Operations-APIs, mit denen der Admin Dinge direkt im Gast ausführen kann, auch wenn kein Netzwerk verfügbar ist. Zusätzlich gibt es in der VCSA Konsole einen Einblick in den Gast, zum Beispiel das installierte Betriebssystem, einige Datenträger und vor allem die Netzwerkinformationen wie Hostname und IP-Adressen.

Das Standardintervall für die Aktualisierung dieser Informationen beträgt 30 Sekunden. Im Allgemeinen ist das auch vollkommen okay, da sich in der Regel weder die Adresse noch das Betriebssystem allzu häufig ändern

Wenn man aber beispielsweise mehrere Instant-Clones ausführt und sich auf die vSphere-API und die GuestInfo-Daten zur Ermittlung der IP-Adresse des Gasts verlassen muss, sind 30 viel Zeit. Zumal der eigentliche Clone-Vorgang in ein paar Sekunden fertig ist.ne viel einfachere Lösung.

Lösung

Es gibt die Möglichkeit für ein Instant-Update:

c:\Program Files\VMware\VMware Tools\VMwareToolboxCmd.exe info update network

Unter Linux:

~$> /usr/bin/vmware-toolbox-cmd info update network

IIS mit PHP Berechtigungsfehler beim Upload von Dateien

Unter Windows mit einem IIS und PHP habe ich soeben STUNDEN damit zugebracht, herauszufinden warum meine hochgeladenen Bilder (und Dateien) nicht die erforderlichen Berechtigungen für eine korrekte Anzeige aus dem Upload-Ordner erben. „Serverfehler 500“ sagt der IIS dazu ja auch nur und Bilder werden nicht angezeigt.

Das Problem tritt nur auf, wenn man PHP zum Hochladen nutzt. .NET hat das Problem generell nicht.

PHP legt hochgeladene Dateien nämlich in einem temporären Verzeichnis ab (Default: %windir%\Temp) und VERSCHIEBT diese danach ins Zielverzeichnis. Wenn eine Datei in dem temporären Upload-Verzeichnis angekommen ist, erbt sie (korrekterweise) erst einmal die NTFS-Berechtigungen dieses Verzeichnisses. Verschieben der Datei auf dem selben Laufwerk erhält dann aber die Berechtigungen dieser Datei und diese erbt die Berechtigungen des Ziel-Webverzeichnisses nicht. Verschiebt man über Volumengrenzen hinweg, tritt dieser Fehler nicht auf: Neue Dateien erben dort die NTFS-Berechtigungen des Zielordners. Das ist so, weil verschiebeoperationen eines Volumes nur den Pointer einer Datei ändern, die anhängenden ACLs und Metadaten aber nicht.

Lösung

Der einfachste Weg dieses Problem zu beheben besteht darin, die Berechtigungen der Ziel-Webverzeichnisses auf das temporäre Upload-Verzeichnis zu übertragen, bzw. die ACLs zu ergänzen. Einfach die Berechtigungen des Webverzeichnisses zum TEMP-Verzeichnis hinzufügen.

  1. Das temporäre Upload-Verzeichnisses in der php.ini-Datei in dem Parameter „upload_tmp_dir“ festgelegt. Ist kein Eintrag festgelegt, verwendet PHP %TEMP%
  2. In diesem Ordner alle Berechtigungen des Ziel-Webordners hinzufügen.

Windows 8/10: DNS-Namensauflösung über VPN-Verbindung erzwingen

Ein weit verbreitetes Problem bei Windows VPN-Verbindungen (RAS/RRAS) ist das Erzwingen der DNS-Namensauflösung über den VPN-Tunnel. Unter Windows ab Version 8 versucht Windows „smart“ zu sein und vermeintlich externe Domains über den Standart-Resovler aufzulösen.

Daher funktioniert die Namensauflösung für VPN-Clients of nicht korrekt und interne Ressourcen sind nicht erreichbar oder werden falsch aufgelöst.

Der Trick an der Sache: Standardmäßig verwendet Windows ab 10 die Routen- sowie Schnittstellenmetrik nicht mehr ausschliesslich für die Route zu einem Paket-Ziel, sondern auch für die Auswahl des „besten“ DNS-Resolvers. Sofern es nur um eine Verbindung geht klappt das ja auch ganz gut.

Lösung

Man vergibt für die VPN-Schnittstelle einfach eine kleinere Metric. Eine deutlich kleinere als die Schnittstelle der LAN-Verbindung hat (Default: ‚Automatisch‘, normalerweise zwischen 280 und 3800).

Start > Einstellungen > Netzwerk und Internet > Adapteroptionen ändern > VPN-Verbindung auswählen > Eigenschaften > Tab „Netzwerk“ > Eigenschaften > Erweitert > „Schnittstellenmetrik“. Hier etwas kleines eintragen, zum Beispiel „5“.

Nach dem erneuten einwöhlen klappt’s auch mit der Namensauflösung.

Quelle: Sehr tief vergrabener Technet-Artikel unter https://blogs.technet.microsoft.com/networking/2015/08/14/adjusting-the-network-protocol-bindings-in-windows-10/

Windows 10 1803/1809 Performance via PowerCfg wieder maximieren

Seit dem Update 1803 von April 2018 gibt es in der Standartmäßig aktiven Energieeinstellung „Ausbalanciert“ einige Änderungen. Viele davon sind sehr klever gewählt, einige aber weniger. Eine führt beispielsweise dazu, das die CPU nur bei längeren Leistungsanforderungen (mehrere Sekunden) in einen schnelleren Gang schaltet. Je nach Applikation ist dieses Verhalten eher suboptimal; Dinge ruckeln plötzlich oder bestimmte Vorgänge dauern einfach länger. Bekannte Vertreter dieses Verhaltens sind RAW-Tools, Filterprogramme oder Index-Sortiervoränge.

Glücklicherweise kann man aber mit der Einstellung „Ultimate Performance Mode“ die ganze volle Arbeitsgeschwindigkeit zurückbekommen.

An der Kommandozeile (PowerCFG) erstellt man eine endlich wieder sichtbare Profilkopie mit:

powercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61

Da PowerCfg.exe kein PowerShell Befehl ist, reicht in diesem Fall die „als Administrator“ gestartete Eingabeaufforderung (cmd).

Danach muss man in den Energieeinstellungen nur noch den Modus „Ultimative Leistung“ auswählen.

An der Kommandozeile kann man das entsprechende Schema ebenfalls auswählen und auch alle existierenden Schemata anzeigen.

powercfg -l  // Alle Energiesparpläne Anzeigen
PowerCfg -s <GUID>  // In GUID Energiesparplan wechseln.

Maintenance Mode und „Intensivreinigung“ beim Brother MFC-J4410DW und MFC-J6930DW

Für Besitzer bestimmer Brother Druckermodelle gehört die Fehlermeldung „Drucker druckt kein Schwarz mehr“ zu einem fast jährlichen Ritual. Da der Maintenance Mode und die beiden darin enthaltenen Allheilmittel „Totalreset“ und „Intensivreinigung“ der Druckköpfe leider nicht öffentlich dokumentiert sind, gibt es hier nun die Anleitung dazu.

Bei der Umsetzung empfehlen wir Ruhe und Konzentration, denn der Wartungsmodus steht aus guten gründen nicht im Handbuch.

Maintenacne Mode / Wartungsmodus starten

  1. Auf dem Touchscreen ist der normale „Bereit“ Zustand zu sehen. Ist das nicht der Fall, den Home-Button (Häuschen-Symbol) rechts vom Display drücken.
  2. Der Home-Button leuchtet jetzt zwar nicht; diesen aber trotzdem 7 Sekunden lang drücken. Es erscheinen 4 horizontale Felder im Display.
  3. Dort das unterste und vollständig leere Feld etwa 5 Sekunden lang gedrückt halten. Im Display erscheint jetzt eine „Telefontastatur“ in einer Tabelle mit Zahlen darin.
  4. Rechts (!) auf dem Touchpad neben dem Homebutton den Maintance Code *2864 eintippen (mit Sternchen). Der Maintenance Mode startet nun, akustisch an einem Piepton wie auch im Display an der Meldung „Maintenance“ zu erkennen.

Der Wartungsmodus lässt sich jederzeit durch die Eingabe von „99“ und den daraufhin ausgelösten Neustart beenden.

Vollreset auslösen

Zuerst den Wartungsmodus starten. Dann:

  1. Rechts auf dem Nummern-Touchscreen die Zahlenfolge „01“ eintippen. Oben in der anzeige erscheint die Angabe „select 01?“
  2. Im Display unten nun den Doppelpfeil nach rechts (>>) antippen, bis in einem der Kästchen das Wort „Mono“ zu lesen ist.
  3. Auf dieses Wort „Mono“ drücken
  4. Im Display erscheint nun oben „Parameter Init“ und der der Resetprozess beginnt. das dauert eine ganze Weile.

Das war es schon, mit 99 kann der Drucker nun neu gestartet werden.

Intensive Druckkopfreinigung

Zuerst den Wartungsmodus starten. Dann:

  1. Rechts auf dem Touchscreen neben dem Homebutton „76“ eintippen, im Display oben erscheint die angabe „Cleaning All“
  2. Im Display unten rechts Doppelpfeil (>>) zweimal antippen, bis in der oberen Kästchenzeile dreieckige Pfeilsymbole zu sehen sind.
  3. In dieser Kästchenzeile den Pfeil ganz rechts antippen bis im Display oben die Farbe auftaucht wird, deren Druckkopf gereinigt werden soll. Man kann hier einzelne Druckköpfe, oder auch alle auf einmal intensiv reinigen lassen. In den meisten Fällen ist Schwarz betroffen, dafür „CLEANING BLACK“ auswählen.
  4. Rechts auf dem Touchscreen mit der Eingabe „4“ den Befehl übernehmen
  5. Oben im display sollte nun „uINIT__P [BLACK]“ (je nach Farbe) zu lesen sein.
  6. Mit dem Doppelpfeil (>>) nun so lange nach rechts tippen, bis im Display, in einem der Kästchen das Wort „Mono“ auftaucht. Mit einem Druck auf dieses wird der Vorgang gestartet. Das dauert auch wieder eine ganze Weile.

Das war es aber dann auch schon, mit 99 kann der Drucker nun neu gestartet werden. Der Maintenance-Code ist übrigens bei allen uns bekannten Brother-Geräten identisch. Bauartbeding variiert natürlich der Zugang zum Maintenance Menü.

„Diese Kopie von Microsoft Office kann auf einem Computer, der die Terminaldienste ausführt, nicht verwendet werden.“ mit Office 365 ProPlus

Trotz korrekter Terminalserver-Installation kommt es seit Ende der Jahres 2018 unter Windows Server 2016 in einer RDS-Umgebung häufiger zu diesem Fehler beim Start der Office-Anwendungen:

Diese Kopie von Microsoft Office kann auf einem Computer, der die Terminaldienste ausführt, nicht verwendet werden. Damit Microsoft Office auf einem Computer, der die Terminaldienste ausführt, verwendet werden kann, müssen Sie eine Volumenlizenzedition von Office verwenden.
Diese Kopie von Microsoft Office kann auf einem Computer, der die Terminaldienste ausführt, nicht verwendet werden. Damit Microsoft Office auf einem Computer, der die Terminaldienste ausführt, verwendet werden kann, müssen Sie eine Volumenlizenzedition von Office verwenden.

Der Inhalt dieser Meldung ist mit Office ProPlus natürlich Unsinn und nur ein Überbleibsel aus vergangenen Tagen. Office ProPlus (oder auch „O365ProPlusRetail“) dürfen durchaus in RDS-Umgebungen genutzt werden.

Eigentlich sorgt bei der Installation der Klick-und-Los Variante („setup /configure“) der Eintrag „SharedComputerLicensing“ in der XML-Datei für die richtige Konfiguration; das scheint aber nicht immer so richtig zu klappen. Vor allem unter Office 2019 (das nur Office365 heißt) ist das der Fall – vermutlich weil sich der zugehörige Registry-Schlüssel geändert hat. Früher wohnte dieser in Office\<version>\ClickToRun, nun entfällt <version>.

„Richtige“ Bereitstellungsdatei

<Configuration>
  <Add OfficeClientEdition="32" Channel="Monthly">
    <Product ID="O365ProPlusRetail">
      <Language ID="de-de" />
    </Product>
  </Add>
<Updates Enabled="TRUE" Channel="Monthly" />
<Display Level="NONE" AcceptEULA="TRUE" />
<Property Name="AUTOACTIVATE" Value="1" />
<Property Name="SharedComputerLicensing" Value="1" />  <--_HIER____
</Configuration>

Lösung

Wenn das mal wieder nicht so recht geklappt zu haen scheint, kann man den notwendigen Registry-Eintrag jederzeiot von Hand hinzufügen und schon ist Office wieder Terminalserver-Fähig.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration
   Name: SharedComputerLicensing
   Typ: REG_SZ ("Zeichenfolge")
   Inhalt: 1

Es ist kein reboot notwendig, nach einem Neustart der Anwendungen läuft Office ohne Fehler.