File Server Resource Manager (FSRM) stürz ab (0x80041011)

Problem

Die FSRM MMC unter Server 2012R2 oder 2016 stürzt ständig ab, wenn man beginnt darin Dinge zu konfigurieren. Das Eventlog sagt dazu:

Im Eventlog steht dazu der Fehler SRMSVC 8197:

File Server Resource Manager Service error: Enexpected error.

Error-Specific details:
IWebmDecoupledRegistrar::Register, 0x80041011

Lösung

Vermutlich ist die Registrierung der zugehörigen WMI-Komponenten des SRM Service zerstört nicht mehr ganz in Ordnung.

In der Regel hilft die Neuregistrierung mit MOFCOMP:

cd "%windir%\system32\wbem"
mofcomp srm.mof

Danach den (FSRM) Dienst neu starten und schon läuft die MMC wieder ohne crashes.

Internet Explorer GPO Preference TLS1.0/TLS1.1/TLS1.2 Einstellung funktioniert nicht

Problem

Die Häkchen im Intenet Explorer 11 für „TLS 1.2“ oder „TLS 1.1“ oder ähnliches sollen gesetzt werden. Das hat der findige Administrator in der nagelneuen Group Policy Preference mit den grünen Kreisen auch gemacht. Aber: Es funktioniert nicht. Die GPO wird angewendet, ist korrekt verknüpft aber der verd**** Internet Explorer will diese Haken nicht setzen.

Lösung

Dank der großartigen systemweiten Integration der Verschlüsselungsparameter nach FIPS wird diese Preference und sogar das zugehörige Registry-Element von einer Gruppenrichtlinie aus komplett ignoriert.

Man setze die Verschlüsselungsparameter also KORREKT unter:

Benutzer > Richtlinien > Administrative > Windows-Komponenten > Internet Explorer > Internetsystemsteuerung > Seite „Erweitert“

„Unterstützung der Verschlüsselung deaktivieren“ auf AKTIVIERT (!) setzen und die passende „Kombinationen von sicheren Protokollen“ wählen. Das führt zu einem Numerischen Registry-Change auf den betroffenen Computern, der Binär mit ienem Linksshift die Flags der aktiven Protokoll auf „1“ setzt. Was ein sch*.

Den Erfolg dieser Aktion kann man dann vom Client aus auch sofort sehen, die entsprechenden Optionen sind vom Client nicht mehr veränderbar („ausgegraut“).

 

 

 

 

VHDX Datei an der Kommandozeile vergrößern (ohne Hyper-V)

Problem

Eine RDS Userdisk oder eine Hyper-V VHDX-Disk soll „mal eben“ vergrößert werden. Auf dem betroffenen Rechner/Server ist allerdings keine Hyper-V Rolle installiert.

Lösung

DISKPART to the rescue. Großartigerweise lässt sich damit nicht nur die VHDX vergrößern, sondern auch gleich die entsprechende Partition darauf in einem Rutsch anpassen.

C:\> Diskpart

DISKPART> select vdisk file="J:\MEINEDATEI.VHDX"

DISKPART> list vdisk

    Hier prüfen, ob die VDisk ein *Sternchen vor dem Namen hat.
    Wenn nicht: DISKPART> select vdisk file="J:\MEINEDATEI.VHDX"

DISKPART> expand vdisk maximum=20000
    20000 = 20 Gbyte

DISKPART> attach vdisk

DISKPART> list disk

    Hier prüfen, ob die VDisk ein *Sternchen vor dem Namen hat.
    Wenn nicht: DISKPART> select disk DISKNAME

list volume

select volume VDISK-VOLUMEN-NUMMER

extend

detach vdisk

exit

IIS „Serverfehler 500“ (Error 500) anstelle von aussagekräftigen PHP Fehlern (php_error)

Problem

Der IIS wirft anstelle sinnvoller Fehlerausgaben von PHP nur einen nichtssagenden „Fehler 500“ für Remote-Webbrowser aus. Dabei sind php_errors und display_error schon richtig konfiguriert.

PHP Fehler 500 IIS

Lösung

Die „Benutzerdefinierten“ Fehlerseiten des IIS sind schuld. Das Feature an sich ist ziemlich clever, weil es den Webbenutzer vor allen fiesen internen und vielleicht sensitiven Fehlermeldungen bewahrt. Für Entwicklungszwecke oder für das Debugging ist das allerdings nicht hilfreich.

IIS Manager öffnen > Betreffende Site ausklappen > rechts „Fehlerseiten“ öffnen > „Featureeinstellungen bearbeiten > auf „Detaillierte Fehler“ stellen

Und schon gibt es wieder aussagekräftige (also von PHP generierte) Fehler.

PHP 7.x auf Windows Server 2016 mit IIS installieren, Schritt für Schritt

Installieren wir ein aktuelles PHP (7.2 in diesem Fall) auf einem Windows Server 2016 in 64bit. Da wir den IIS nutzen und ein lokales CGI-Script-Handling einrichten wollen, nutzen wir die NTS (Non Thread Safe) Variante.

Auf die Unterschiede zwischen „Thread Safe“ und „Non Thread Safe“ gehen wir hier nich genauer ein. Schnelle Admins wissen aber:

  • Apache + LoadModule: Thread Safe
  • Apache + FastCGI: Non-Thread Safe
  • IIS: Thread Safe
  • IIS + FastCGI: Non-Thread Safe « Diese Anleitung

Installation von PHP 7.2 auf Windows Serrver 2016 (IIS)

  1. Windows Server 2016 installieren+updaten, IIS und Tools hinzufügen. Die Installation dauert einen Moment. Der Telnet-Client ist nicht zwingend notwendig, aber oft hilfreich.
    PS C:\> Import-Module servermanager
    PS C:\> Install-WindowsFeature -name web-server,web-cgi –IncludeManagementTools
    PS C:\> Add-WindowsFeature telnet-client
  2. PHP herunterladen und installieren: https://windows.php.net/download/. „VC15 x86 Non Thread Safe„. Wir empfehlen 32bit (x86) wegen der Extensions, es gibt noch nicht alle Extensions in x64. Jetzt grade aktuell war PHP in der Version 7.2.9.
  3. Visual C++ 2015 Runtime Update 3 RC (oder auch gleich 2017) in x86 und x64 herunterladen und installieren: https://www.microsoft.com/DE-de/download/details.aspx?id=52685
  4. Die PHP ZIP-Datei  (als Administrator) entpacken (z.B. „%Program Files (x86)%\PHP“)
  5. Kopieren der „php.ini-development“ in die „php.ini“
    PS C:\Program Files (x86)\php-nts-x86> Copy-Item .\php.ini-development .\php.ini2
  6. PHP.ini bearbeiten
    error_log = C:\inetpub\logs\php_errors.log
    max_execution_time = 60
    max_input_time = 90
    memory_limit = 256M
    default_charset = "UTF-8"
    upload_tmp_dir = "C:\inetpub\temp\IIS Temporary Compressed Files"
    upload_max_filesize = 16M
    allow_url_fopen = Off
    extension=php_wincache.dll
  7. Den PHP Interpreter zur System-PATH-Variable hinzufügen
    1. Systemeigenschaften > Erweitert > Umgebungsvariablen > Systemvariablen > Eintrag „Path“ bearbeiten > Neu > <PFAD ZU PHP> einfügen > OK > OK
  8. „Wincache Extensian for PHP“ 2.0 in 64bit herunterladen: https://www.iis.net/downloads/microsoft/wincache-extension (Aktuell: „wincache-2.0.0.8-dev-7.1-nts-vc14-x64.exe“) und in den PHP-Pfad nach \ext entpacken
  9. PHP im IIS konfigurieren
    1. „Internetinformationsdienste (IIS)-Manager“ starten > Links den Server auswählen (oberste Ebene) > „Handlerzuordnungen“ öffnen
    2. „Modulzuordnung hinzufügen“:
      1. Anforderungspfad: *.php
      2. Modul: FastCgiModule
      3. Ausführbare Datei: „C:\Program Files (x86)\<PHP-PFAD>\php-cgi.exe“
      4. Name: PHP
      5. Einschränkungen: „Handler nur bei folgender Zuordnung aufrufen“ auf „Datei oder Ordner“ stellen
  10. Standartdokument(e) hinzufügen
    1. Internetinformationsdienste (IIS)-Manager“ starten > Links den Server auswählen (oberste Ebene) >Standdartdokument
    2. Hinzufügen > „index.php“
  11. Schon fertig 🙂

Installation von Microsoft SQL Server Treibern für PHP unter Windows/IIS

  1. Download der „Microsoft PHP drivers Version for SQL Server“ (aktuell 7.2): https://github.com/Microsoft/msphpsql/releases
  2. Entpacken von x86\php_pdo*.dll nach <PHPPFAD>\ext
  3. Bearbeiten der PHP.ini
    extension=php_sqlsrv_72_nts.dll
  4. Download und Installation der „Microsoft® ODBC Driver 17 for SQL Server“ in 64bit: https://www.microsoft.com/de-DE/download/details.aspx?id=56567
  5. Webserver neustart mit „IISRESET“
  6. Fertig 🙂

Ob das jeweilige Modul geladen werden konnte, lässt sich an der Kommandozeile mit „php -m“ recht gut überprüfen.

Testen der Installation von PHP auf IIS

In C:\inetpub\wwwroot eine Datei „phpinfo.php“ anlegen mit dem folgenden Inhalt:

<?php
    phpinfo();
?>

Und aufrufen von http://<SERVERNAME>/phpinfo.php

 

WSUS Event 7032 („System.Net.Sockets.SocketException — Der angegebene Host ist unbekannt“) nach Umbenennen des Servers

Problem

Nach dem Umbenennen eines WSUS-Servers funktioniert die WSUS-Konsole (das MMC Snap In) nicht mehr richtig. Man bekommt beim Start der „Windows Update“ MMC nur diese wenig hilfreiche Fehlermeldung nur zu sehen „Dieses Snap-in reagiert nicht„.

WSUS - Dieses Snap-In reagiert nichtAußerdem verrät das Ereignisprotokoll dem geneigten Leser noch in etwa folgendes:

Ereignis-ID: 7032

Die WSUS-Verwaltungskonsole konnte über die Remote-API keine Verbindung mit dem WSUS-Server herstellen.

Stellen Sie sicher, dass der Update Services-Dienst, IIS und SQL auf dem Server ausgeführt werden. Starten Sie IIS, SQL und den Update Services-Dienst erneut, wenn das Problem weiterhin besteht.

System.Net.Sockets.SocketException — Der angegebene Host ist unbekannt

Source System

Stack Trace:
bei System.Net.Dns.GetAddrInfo(String name)
bei System.Net.Dns.InternalGetHostByName(String ….

 

Lösung

Die MMC speichert in ihren lokalen Einstellungen unter anderem den (alten) Servernamen. Den, der bei der Installation vergeben wurde. Man löscht alle WSUS-MMC-Settings durch das entfernen dieser Datei:

%USERPROFILE%\appdata\roaming\microsoft\mmc\wsus.*

Danach startet die Konsole wieder wie gewohnt.

Auf (USB-)Datenträger kann nicht geschrieben werden

Wie auch immer das passiert ist: Auf einer nagelneuen USB-Festplatte wollte ein Windows-Server nicht schrieben. Stellt sich raus, das Laufwerk ist schreibgeschützt.

Schreibschutz von Festplatten unter Windows entfernen:

diskpart

als Administrator ausführen und mit

list disk

Die Nummerierte Liste der Laufwerke ausgeben.

select disk #NUMMER

wählt das Laufwerk und

attributes disk clear readonly

entfernt das Schribschutz-Attribut. „Exit“ schliest DISKPART wieder.