Windows: Server hängt mit "System wird vorbereitet. Schalten Sie den Computer nicht aus"

Problem:
Nach der Installation von mehreren Microsoft Patches auf einem Server musste ich diesen neu starten. Diese blieb jedoch bei der Meldung hängen und ich habe fast 20 Minuten gewartet, ohne das sich etwas tut:

Ich wollte den Server nicht einfach "hart" ausschalten...

Lösung:
Von einem anderen Server aus konnte ich mir die Dienste anzeigen lassen. Hier war der Dienst "Windows Modules Installer" im Status "wird beendet" und wurde aber nie beendet. Also müssen wir diesen remote beenden. Dazu habe ich das Windows-eigene Tool "Taskkill" genommen und den Installer-Dienst remote mit folgendem Befehl beendet:
taskkill /S hostname /IM trustedinstaller.exe
Nach wenigen Sekunden war der Dienst beendet und der Neustart wurde problemlos durchgeführt.
Man kann das auch mit PSEXEC von dne Sysinternals Tools machen.

Exchange 2016: Fehler "Version mismatch was detected" beim Verschieben von Postfächern

Problem:
Ich habe bei der Migration von Exchange 2013 auf 2016 beim Versuch Postfächer zu verschieben folgende Fehlermeldung bekommen:
Ich konnte keine Postfächer auf den neuen Exchange 2016 verschieben

Lösung:
Das Problem ist, dass das Migration-Postfach erst auf den neuen 2016er verschoben werden muss und sich damit auch die Version anhebt. Erst dann ist eine Migration von anderen Postfächern möglich. Das Migrationspostfach ermitteln Sie mittels Powershell:
Get-Mailbox Migration* -Arbitration

Ich habe das Postfach dann einfach in die neue Datenbank auf dem Exchange 2016 verschoben:
Get-Mailbox Migration* -Arbitration | New-MoveRequest -TargetDatabase "Datenbankname"

Nach der erfolgreichen Migration kann man sich auch die Versionsnummer anzeigen lassen. Diese sollte nun nicht mehr 15.0 sondern 15.1 lauten:
Get-Mailbox Migration* -Arbitration | ft Name,AdminDisplayVersion

Jetzt kann man die anderen Postfächer problemlos migrieren.
Generell empfiehlt es sich die Systempostfächer zuerst umzuziehen. Um diese zu ermitteln habe ich auch ein Skript geschrieben: Microsoft Exchange: Ermittlung aller System-Postfächer (Monitoring, Arbitration etc.)

Office VBA: Inputbox Button "Abbrechen" korrekt auswerten

Problem:
Ich habe ein Makro in Excel geschrieben und hier muss der Benutzer etwas eingeben bzw. hat mit dem ABBRECHEN-Button die Möglichkeit das Makro zu beenden. Jetzt habe ich bemerkt, dass das Abbrechen nicht funktioniert - der Code wird nicht korrekt ausgewertet und das Makro läuft weiter.

Lösung:
Eine Inputbox ist keine Msgbox und muss anders ausgewertet werden. Es gibt hier zwei Möglichkeiten:

1.) Beim Abbrechen wird der Wert "" übergeben (leer) und man kann dies auswerten.

Beispiel:
Wert = Inputbox("Bitte Namen eingeben")
If Wert = "" then 
    Msgbox "Es wurde kein Wert eingegeben oder Abbrechen geklickt"
Else
    ........
End If


Nachteil hier ist, dass man nicht zwischen Abbrechen oder leerer Eingabe unterscheiden kann.


2.) Man wertet wirklich aus, ob der Wert leer ist oder null mittels StrPtr-Funktion. Null würde ABBRECHEN entsprechen

Beispiel:
Wert = Inputbox("Bitte Namen eingeben")
If StrPtr(Wert) = 0 then 
    Msgbox "Es wurde sicher Abbrechen geklickt"
Else
    ........
End If


Vorteil hier ist, dass man klar zwischen ABBRECHEN und leerer Eingabe unterscheiden kann.

Quelle:
Bettersolutions.com: STRPTR

Windows Server: Fehlermeldung ERROR_INVALID_PRINTER_NAME, wenn man einen Windows-Druckserver über einen DNS Alias (CNAME) anspricht

Problem:
Damit ich nicht immer die Drucker mit einem anderen Servernamen verbinden muss, habe ich mir gedacht, dass ich einen DNS-Alias (CNAME) für meinen Microsoft Windows Druckserver erstelle und den eigentlichen Druckserver dahinter "verstecke". Leider habe ich dann ständig Fehlermeldungen erhalten, wenn ich die Drucker verbinden wollte: ERROR_INVALID_PRINTER_NAME

Lösung:
Es gibt tatsächlich eine Lösung dafür. Man muss folgenden Registry-Key auf dem Druckserver erstellen und nach einem Neustart lässt dich der Druckserver über den DNS-Alias (CNAME) problemlos ansprechen.
Folgenden Key bitte setzen:

[HKLM\SYSTEM\CurrentControlSet\Control\Print]
"DnsOnWire"=dword:00000001


Danach bitte den Spooler-Dienst auf dem Server neu starten, damit die Einstellung wirksam wird.

Quelle:
Microsoft DOCS: Error message when you try to connect to a printer by using an alias (CNAME) resource record: Windows couldn't connect to the printer

Exchange 2013/2016: Installationsanleitung für einen Exchange CU auf einen Single Server (kein DAG)

Hier meine Anleitung zur Installation eines Exchange CU auf einen einzelnen Exchange Server(kein DAG) - ist wahrscheinlich nicht vollständig, aber für mich steht hier das Wichtigste drin.

Vorher eventuelles Schema-Update prüfen und ggf. durchführen. Für ein sicheres Schema-Update habe ich auch bereits eine Anleitung geschrieben:
HTH: ActiveDirectory: Sicheres Schema-Update (ADPREP) mittels Replikations-Pause

Danach geht es mit den Vorbereitungen und Installation weiter:

- Benutzerspezifische Konfigurationsdateien sichern (z.B. Microsoft.Exchange.Store.Worker.exe.config)
- Backup-Zeiten prüfen und ggf. anhalten
- NAT für SMTP deaktivieren - Keine Mails kommen mehr herein, keine Client-Verbindungen mehr von extern
- HTTPS in NAT auf Firewall deaktivieren - Keine externen Client-Verbindungen mehr (nur wenn kein Reverse Proxy vorhanden)
- Reverse Proxy deaktivieren, falls vorhanden - kein OWA, ActiveSync und Outlook Anywhere
- Server herunterfahren und Snapshot erstellen (Sicherheit)
- Server neu starten - schließt auch alle eventuellen Installationsroutinen ab (Updates etc.)
- Virenscanner deaktivieren bei Installation (z.B. Defender: Set-MpPreference -DisableRealtimeMonitoring $true)
- Powershell Restriction deaktivieren: Set-ExecutionPolicy Unrestricted
- Server neu starten - zur Sicherheit
- AV-Status prüfen erneut prüfen: Get-Mppreference
- ISO mounten
- CMD als Administrator öffnen (Wichtig, wegen UAC)
- Setup aus CMD starten und erfolgreich durchlaufen lassen – kann dauern... (ca. 1 Stunde)
- Zuvor gesicherte, benutzerspezifische Konfigurationsdateien prüfen und ggf. wiederherstellen (Filedate prüfen)
- Serverneustart durchführen um Installation abzuschließen und wiederhergestellte Konfiguration zu aktivieren
- ReverseProxy bzw. HTTPS im NAT auf der Firewall wieder aktivieren
- NAT für SMTP wieder aktivieren - Testmail schicken!!
- Nach Update Funktionen prüfen: OWA, ActiveSync, Outlook Anywhere
- Backup ggf. wieder aktivieren
- Virenscanner aktivieren (z.B. Set-MpPreference -DisableRealtimeMonitoring $false)
- Snapshot löschen

Server 2003 R2: Aufgaben auf ehemaligen DC laufen nicht mehr - 0x8007000d: Die Daten sind ungültig

Problem:
Auch wenn der Server 2003R2 schon extrem angestaubt ist, hat man manchmal doch noch damit zu tun. Ich hatte einen 2003R2 Domain Controller, den ich gegen ein aktuelles System getauscht habe aber vorerst als Memberserver weitergetrieben musste. Auf dem 2003R2 Server liefen einige geplante Aufgaben. Nachdem ich den Server die Domain Controller Rolle entfernt hatte, liefen alle Aufgaben auf den Fehler "0x8007000d: Die Daten sind ungültig". Beim manuellen Starten der Aufgabe habe ich folgenden Fehler erhalten:

Fehler beim Initialisieren der Seite "Allgemein".
Der genaue Fehler ist: 0x8007000d: die Daten sind ungültig.
Abrufen der Taskkontoinformationen ist ein Fehler aufgetreten. Sie können weiterhin das Task-Objekt bearbeiten, aber nicht ändern.


Lösung:
Das Problem scheint wirklich durch das Herunterstufen des DCs zukommen. Es gibt einige Lösungsansätze im Internet, aber folgender Workaround hat bei mir geholfen:

- Öffnen Sie den Pfad "C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\Microsoft\Crypto\RSA"
- Dort finden Sie einen Ordner "S-1-5-18"
- Ich habe mal eine Sicherheitskopie des Ordners angelegt
- Dann löschen Sie die Dateien in diesem Ordner, aber nicht den Ordner selbst
- Starten Sie den Taskplaner-Dienst neu
- Danach öffnen Sie die Eigenschaften der Aufgaben und geben die Anmeldedaten im Task erneut ein
- Danach laufen die Aufgaben wieder ohne Probleme

“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”
Gene Spafford (Sicherheitsexperte)