CertificateServicesClient-AutoEnrollment Event 6, CertificateServicesClient-CertEnroll Event 13 und CertificateServicesClient-CertEnroll Event 82

Problem

Auf Domänencontrollern gibt es in regelmäßigen Abständen im Eriegnisprotokoll diese Fehlermeldungen:

Quelle: CertificateServicesClient-CertEnroll
Event-ID: 82
Fehler bei der Zertifikatregistrierung für Lokales System bei der Authentifizierung für alle URLs für den
Registrierungsserver, der folgender Richtlinien-ID zugeordnet ist: {1874501F-FFFF-AFFE-BBD5-F3B749CBCF4A}
(Der RPC-Server ist nicht verfügbar. 0x800706ba (WIN32: 1722 RPC_S_SERVER_UNAVAILABLE)).
Fehler bei der Registrierung für Vorlage: DomainController

Dicht gefolgt von

Die Zertifikatregistrierung für Lokales System konnte sich nicht für ein Zertifikat DomainController mit der Anforderungs-ID N/A von serverwitten.DrSpangGmbH.local\Dr. Spang GmbH (Der RPC-Server ist nicht verfügbar. 0x800706ba (WIN32: 1722 RPC_S_SERVER_UNAVAILABLE)) registrieren.

Quelle: CertificateServicesClient-CertEnroll
Event-ID: 13
Die Zertifikatregistrierung für Lokales System konnte sich nicht für ein Zertifikat DomainController mit der
Anforderungs-ID N/A von SERVERNAME.DPOMAIN.TLD\OLD-CA-NAME (Der RPC-Server ist nicht verfügbar.
0x800706ba (WIN32: 1722 RPC_S_SERVER_UNAVAILABLE)) registrieren.

Und dann bestätigt von:

Bei der automatischen Zertifikatregistrierung für lokales System ist ein Fehler aufgetreten (0x800706ba) Der RPC-Server ist nicht verfügbar. .

Quelle: CertificateServicesClient-AutoEnrollment
Event-ID: 6
Meldung:
Bei der automatischen Zertifikatregistrierung für lokales System ist ein Fehler aufgetreten (0x800706ba)
Der RPC-Server ist nicht verfügbar.
.

Das passiert in der Regel, wenn es „irgendwann“ mal eine CA in dieser Domäne gab und der Servers nicht mehr exisitert. Hinweise auf so eine Situation können Zitate sein wie „Den Servernamen kenne ich, aber den gibt es schon lange nicht mehr. Wir haben auch keine eigene CA“. Das passiert auch gene mal, wenn uralte Exchange-Server deinstalliert werden die Self-Signed Zertifikate über sich selber genutzt haben.

Wichtig: Der Name der CA (aus den Ereignismeldungen) muss exakt stimmen.

Lösung

Die ehemalige CA und deren Zertifikatsvorlagen (Templates) müssen sauber aus dem Active Directory entfernt werden. Der Name der CA ist ja aus den Meldunge bekannt.

  1. „Active-Directory Standorte und Dienste“ öffnen und unter Ansicht > „Dienstknoten anzeigen“ einschalten
  2. Öfnen von „Services“ > „Public Key Service“ > „AIA“ > in der rechten Hälfte hier die falsche/tote CA (Hier steht der CA Name, NICHT der Servername)  löschen
  3. Öffnen von „Services“ > „Public Key Service“ > „Enrollment Services“ > und auch hier die falsche CA löschen

Die folgenden beiden Schritte nur durchführen, wenn es KEINE NEUE CA in dieser Domäne gibt. Wenn es eine CA in der Domain gibt, diese Schritte überspringen.

  1. Die alten Zertifikatsvorlagen aus dem AD entfernen: Öffne „Public Key Service“ > „Certificate Templates“ und lösche alle LDAP-Vorlagen hier drin
  2. Unter „Public Key Services“ das Objekt „NTAuthCertificates“ löschen

Konfiguration im AD aktualisieren

An der Shell (CMD oder Powershell) die DC-Informationen aufräumen und aktualisieren:

C:\> certutil -dcinfo deleteBad

Nach ein paar Minuten (Default: 5) die RSOP-Daten des/der DCs aktualisieren:

C:\> gpupdate /force

Das passiert zwar auch automatisch (auch auf allen DCs), aber wenn man das manuell anstößt kann man den Erfolg praktisch sofort in der Ereignisanzeige nachvollziehen:

 

 

Windows Server 2012R2 verliert sporadisch Netzwerkverbindung „Die IP-Adresse für die Isatap-Schnittstelle LAN-Verbindungwurde nicht aktualisiert.“

Ein sehr seltsames Problem, aber eine einfache Lösung.

Wir haben einen Windows Server 2012 R2 (Domain Controller), der früher auf einem vSphere 5.5 lief. Später wurde der darunterliegende ESXi auf ein vSphere 6 aktualisiert. Sporadischen („random“) traten unter beiden ESX-Versionen Ausfälle bei ebendiesem DC auf; die Netzwerkkarte war plötzlich nicht mehr erreichbar.

Die Netzwerkkarte war im Fehlerfall tot, sprich von außen nicht mehr pingbar. Mann konnte sich auf der Konsole des Servers problemlos einloggen und die Karte sehen, aber keine Pakete wurden mehr verschickt oder empfangen. Nach einem Reboot klappte wieder alles einwandfrei, mal für ein paar Stunden, mal für ein paar Tage.

Im Ereignisprotokoll war nichts zu finden (wenn doch nur alle Logs so sauber wären …), außer:

Log Name:      System
Source:        Microsoft-Windows-Iphlpsvc
Date:          2/1/2017 5:01:51 PM
Event ID:      4202
Task Category: None
Level:         Error
Keywords:      
User:          SYSTEM
Computer:      MYSERVER.MYDOMAIN
Description:
Unable to update the IP address on Isatap interface isatap.{<SID>}. Update Type: 0. Error Code: 0x57.

und

 Log Name: System
 Source: Microsoft-Windows-Iphlpsvc
 Date: 2/1/2017 4:49:33 PM
 Event ID: 4202
 Task Category: None
 Level: Error
 Keywords:
 User: SYSTEM
 Computer: MYSERVER.MYDOMAIN
 Description:
 Unable to update the IP address on Isatap interface isatap.{<SID>}. Update Type: 1. Error Code: 0x490.

Lösung

Die Netzwerkkarte in dem System war eine vmware INTEL E1000. Diese durch einen VMXNET-Adapter (idealerweise VMXNET3) austauschen und der Fehler ist verschwunden.

 

Veeam Backup & Replication: „RPC error: Zugriff verweigert Code: 5“

Problem

Veeam Backup and Replication sichert „auf einmal“ eine oder mehrere VM-Gastmaschinen nicht mehr, oder nur mit einer Warnung (je nach Application-Processin Einstellungen). Das passiert nach einem Upgrade der betroffenen virtuellen Maschinen auf Windows Server 2016. Die Fehlermeldung im Veeam-Bericht lautet:

Failed to prepare guest for hot backup. Details: Failed to check whether snapshot is in progress (network mode).

RPC function call failed. Function name: [IsSnapshotInProgress]. Target machine: [SERNAME.DOMAIN.TLD]. RPC error:Zugriff verweigert Code: 5
 Failed to index guest file system. Veeam Guest Agent is not started

Lösung

Bei Windows Server 2016 müssen die Credentials nicht mehr im UPN-Format (username@domain.tld) angelegt sein, sondern imklassischen NT-Format (DOMAIN\username). Warum das plötzlich so ist, wissen wir leider nicht und konnten das auch noch nicht herausfinden. Wenn man die Credentials aber entsprechend ändert, klappt die Application-Processing Sicherung aber sofort wieder.

VMware Tools Tray-Icon auf RDS- oder Terminalservern via GPO ausblenden

In einer RDS/View/Desktop Umgebung wird das niedliche VMware Tools Icon ständig und bei allen Benutzer im Tray angezeigt. Der Benutzer hat zwar keine Möglichkeit den Prozess zu mißbrauchen, trotzdem frißt der VMwareTray.exe-Prozess lockere 3Megaby RAM (pro Nutzer) und hat keinen sinnvollen Nutzen.

Der Schlüssel für die dauerhafte Ausblendung des vmware Tray-Prozesses lautet:

[HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.\VMware Tools]
"ShowTray"=dword:00000000

Der DWORD(32)-Wert „ShowSystray“=0 bedeutet dass das Icon nicht angezeigt wird, mit dem Wert 1 ist es wieder sichtbar

Daß der Prozess überhaupt gestartet wird, ist im RUN Schlüssel des Systems abgelegt. Daher kann auch dieser entfernt werden. Beide Einstellungen sind natürlich auch über Group Policy Preferences konfigurierbar.

 

Wo ist der Windows 10 (Windows Server 2012/2016) Autostart Ordner?

Windows 10 Autostart Ordner„Aus gegebenem Anlass“ (*wink* Praktikant*) hier noch einmal die Pfade zur den wichtigsten Windows 10 (und Windows Server 2012R2/2016) Autostart-Ordnern. Obwohl der „autostart“-Folder nicht mehr im Startmenü angezeigt wird, gibt es ihn noch und er tut noch seinen Dienst.

Autostart-Pfad (Lokaler Benutzer)

"C:\Users\<USERNAME>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"

oder

"%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup"

Ausführen-Link:

"shell:startup"

Autostart-Pfad (Alle Benutzer)

"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp"

oder

"%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\StartUp"

Ausführen-Link:

"shell:common startup"

Windows Server 2012R2 mit ABE hat hohe CPU-Last (Gestbeitrag von Andreas)

Problem

Ein Windows Server 2012R2 installierter Fileserver-Rolle und aktiviertem ABE (Access Based Enumeration) hat sehr viele PDF-Dateien bekommen. Daraufhin gibt es massive Performance-Probleme.

Die CPU am Fileserver zeigt während des Arbeitszeit ~100% Last an, Netzwerklast gibt es dabei aber kaum. Mit Procmon sieht man unzählige Zugriffe auf diese PDF Dateien. Auf die Dateien und Ordner kann von Windows 7 Clients aus zugegriffen werden.

Lösung

Die ABE-Funktion muss bei einer großen Anzahl Ordnern und Dateien eingeschränkt werden, weil die Anfrageschlange sonst zu groß wird.

Den ABELevel kann man in der Registry setzen. Das geht hier:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters

Dort einen DWORD-Wert (32 bit) Eintrag mit der Bezeichnung ABELevel und einem entsprechendem Wert anlegen.

Der ABELevel -Wert gibt die höchste Ebene der Ordner auf denen die ABE-Funktion aktiviert ist. Zum Beispiel wenn ABE auf \\SERVER\FREIGABE aktibiert ist, muss der ABELevel-Wert auf „1“ stehen. Wenn ABE auf \\SERVER\FREIGABE\ORDNER aktiviert ist, muss der ABELevel Wert auf „2“ stehen. Wenn der Wert ABELevel nicht festgelegt ist oder der Wert 0 hat, ist dieser Hotfix noch nicht installiert.

Wert = 1: ABE aktiviert für Tiefe von 1 (\server\share)
Wert = 2: ABE aktiviert für Tiefe von 2 (\server\share\folder)

Microsoft-KB: https://support.microsoft.com/de-de/kb/2732618 (High CPU usage on a file server that is running Windows Vista, Windows 7, Windows Server 2008 or Windows Server 2008 R2 with ABE enabled)

Ein ganz großes Dankeschön an Andreas 🙂

 

IIS Reverse SSL Proxy unter Windows Server 2012R2/2016 einrichten (Schritt für Schritt)

Ab und zu muss ein Wbservice auf einem „dritten“ Web- oder Applikationsserver wie Tomcat, Jetty ein Hardware-IoT-Gerät (Heizungssteuerung, Alarmsystem …) oder ähnliches sicher an das Internet angebunden werden. Was bietet sich mehr an, als ein reverser Proxy in einem „Standart-System“, das die SSL/TLS-Verbindung eines Clients verwaltet und nur die nackten HTTP-Anfragen unverschlüssel weiterleitet? Eine einfache Anleitung für einen SSL-Offloading-reverse-Proxy.

Installation IIS als reverse Proxy mit SSL-Offloading

Installieren

Reverse-Proxy im IIS einschalten

IIS-Konsole („Internetinformationsdienste (IIS) Manager“) > Links auf den Server > Rechts auf „Application Request Routing Cache“ > Ganz recht auf die Action „Server Proxy Settings…“ > „Enable Proxy“ einschalten. Sonst hier nichts ausfüllen, vor allem das Feld für die Proxy-Chain leer lassen.

Falls noch nicht geschehen: SSL-Zertifikat in IIS importieren

Wir importieren hier ein Zertifikat einschliesslich private Key, zum Beispiel aus einem Wildcard-Zertifikat. Je nach Ausgangsstellung muss das passende Zertifikat zur Verfügung stehen (self-signed oder unterschriebener CSR und so weiter).

Doppelklick auf das PFX > Speicherort „Lokaler Computer“ > Weiter … (dem Assistenten folgen) …Fertigstellen.

SSL-Listener im IIS erstellen

IIS Manager > Links den Server auswählen > Rechts die Action „Bindungen“ > Hinzufügen > Den Typ auf „SSL“ stellen und den rest des Fesnters entsprechend ausfüllen. Sollte hier kein SSL-Zertifikat zur Auswahl stehen, ist das Zertifikat nicht korrekt importieren (oder es steht kein privater Schlüssel zur Verfügung). Dann den vorherigen Schritt noch einmal genau anschauen. Sollte der lokale Port :80 belegt sein, diesen auf einen anderen freien Port umstellen.

Weiterleitungsziel (Server „Farm“) erstellen und Rewrite-Regel erstellen

Im IIS-Manager links unten auf den neuen Knoten „Server Farms“ > Create Server Farm

Server-Farm Name: beliebig > Das Feld „Server Address“ ist der Ziel-Webserver (in diesem Bespiel ist der Ziel-Webserver auf dem lokalen Host 127.0.0.1, das kann aber auch ein BELIEBIGER-HOST.DOMAIN.INTERN sein) > Die folgende „Rewrite Rules“ Frage mit „Ja“ beanworten („IIS Manager can create a URL rewrite rule to route all incoming requests to this server farm automatically. Do you want to create this rule now? You can also create this rule later by visiting the Routing Rules page of the server farm.“)

  • Unter „Advanced Settings“ müssen HTTP/HTTPS-port belegt sein. Wenn der Webserver nur auf HTTP reagiert, einfach undedizierten Müll eintragen.
  • Der Port lässt sich im nachhinein an dieser Stelle nicht mehr ändern. Ändert sich der Ziel-Port, einfach den Server löschen und einen neuen Eintrag hinzufügen. Alternativ kann man über den „Configuration Editor“ > Web Farms den eintrag erreichen. Microsoft hat sich hier das logische GUI einfach gespart.

Damit ider der IIS Reverse Proxy auch schon fertig.

Windows Batch: Uhrzeit und Datum verwenden (UPDATE: mit führender „0“ bei einstelligen Stunden)

Ich benötige im Alltag ab und an das aktuelle Datum und die Uhrzeit „zerlegt“ in einzelne Variablen, um zum Beispiel Dateien nach Zeit oder Datum abzuspeichern oder Logeinträge korrekt formatiert auszugeben. Das ist seit Windows XP zum Glück recht einfach, aber weil ich faul bin lege ich hier meine zu diesem Zweck erzeugten Substring-Scriptschnipsel ab – dann muss ich die paar Zeilen nicht immer neu tippen (und korrigieren).

Es gibt da auch ein Problem mit den führenden Nullen: Windows setzt die Zeitvariable %time% nicht mit führenden Nullen, sondern in „Menschlich lesbar“.

Beispiel:

C:\>echo %time%        Ergibt ab 10Uhr: 11:02:18,04

C:\>echo %time%        Ergibt ab 24Uhr: _9:02:18,04 Hier ist ein Leerzeichen eingefügt, denn das Padding des Strings ist immer gleich breit.

Lösung

set YYYY=%date:~-4%
set MM=%date:~-7,2%
set DD=%date:~-10,2%
set hr=%time:~0,2%
if "%hr:~0,1%" == " " SET hr=0%hr:~1,1%
set min=%time:~3,2%
set sek=%time:~6,2%

Mit diesen Variablen würde eine Ausgabezeile zum Beispiel so aussehen:

echo Es ist heute der %DD%.%MM%.%YYYY% und wir haben die wundervolle Uhrzeit %hr%:%min%:%sek%

Mit führenden Nullen sieht das Ergebnis dann, korrekterweise, so aus:

Es ist heute der 24.12.2016 und wir haben die wundervolle Uhrzeit 01:04:37

Nicht das diese Zeile viel Sinn hätte, in der Praxis benötige ich beispielsweise eher so etwas:

zip –m -9 idslogs-%YYY%%MM%%DD%%.zip %1*.log

… das mir Dateien mit einem sinnvollen Namen (z.B. idslogs-20121203.zip) erstellt.

Wichtig zu wissen: Diese Zeilen legen die wichtigen Werte direkt in eigenen Variablen ab; die Zuordnung ist im Moment der Zuordnung statisch, was bedeutet das ein Wert sobald zugewiesen immer so bleibt und sich nicht mit fortschreitender Zeit ändert. Wenn die Werte aktualisiert werden sollen (beispielsweise zu beginn/ende eines Script) muss dieser Block wieder aufgerufen werden, etwa mit einer call: Anweisung dorthin.