Archive for the ‘Kunden’ Category

Kaputte oder hängende Windows Updates Offline unter WinPE oder WinRE mittels DISM deinstallieren

20 September 2018

Ab und an gibt es Probleme mit Updates von Windows, welche dazu führen, dass mit dem betreffenden Rechner nichts mehr anzufangen ist. Er fährt einfach nicht mehr hoch und die üblichen Mechanismen zur Reparatur funktionieren nicht. Der normale Weg ist dann eine komplette Neuinstallation. Solange man einen Hardwaredefekt ausschließen kann muss dies nicht immer sein. Man muss nur irgendwie Zugriff auf die Festplatte des nicht funktionierenden Systems bekommen. Am einfachsten geht es mittels WinPE oder WinRE.

Nun verwendet man DISM.EXE um mit Images zu arbeiten, allerdings muss man immer mittels Parameter sagen, um welches Images es sich handelt. Images bezieht sich in diesem Zusammenhang auf eine Windowsinstallation. Dazu muss zuerst in Erfahrung gebracht werden, unter welchem Laufwerksbuchstaben das zu betreuende Windows verfügbar ist. Anschließend wird DISM immer mit dem Parameter /image:<LW> aufgerufen, wobei <LW> der Laufwerksbuchstabe des zu bearbeitenden Windows ist.

Zum Auflisten der installierten Updates verwendet man:

DISM /Image:C: /Get-Packages


Paketidentität : Package_for_KB4456655~31bf3856ad364e35~amd64~~17134.281.1.1
Status : Installiert
Versionstyp : Update
Installationszeit : 11.09.2018 20:03

Paketidentität : Package_for_KB4457146~31bf3856ad364e35~amd64~~10.0.1.0
Status : Installiert
Versionstyp : Security Update
Installationszeit : 11.09.2018 20:04

Paketidentität : Package_for_RollupFix~31bf3856ad364e35~amd64~~17134.228.1.6
Status : Abgelöst
Versionstyp : Security Update
Installationszeit : 15.08.2018 22:33

Paketidentität : Package_for_RollupFix~31bf3856ad364e35~amd64~~17134.285.1.7
Status : Installiert
Versionstyp : Security Update
Installationszeit : 15.09.2018 03:07

Der Vorgang wurde erfolgreich beendet.

Hat man nun ein Problem mit einem Update dann deinstalliert man dies, indem man die Paketidentität angibt:

DISM /Image:C: /Remove-Package /PackageName:Package_for_RollupFix~31bf3856ad364e35
~amd64~~17134.285.1.7

Am Ende sollte noch aufgeräumt werden:

DISM /Image:C: /CleanUp-Image /RevertPendingActions

Der Parameter RevertPendingActions kann auch in anderen Situationen angewandt werden: https://blogs.technet.microsoft.com/joscon/2009/10/15/getting-out-of-a-no-boot-situation-after-installing-updates-on-windows-7-2008r2/.

Wenn das Entfernen des letzten Updates nicht hilft, könnte das weitere Entfernen von Updates helfen.

Übrigens kann man obige Befehle auch auf eine laufende Instanz von Windows anwenden indem einfach anstatt /Image:C: /Online angibt.

Advertisements

Chrome unter Windows 10 ladet und baut Seiten nur langsam auf und bricht teilweise auch mit einer Fehlermeldung ERR_TIMED_OUT ab

4 September 2018

Chrome, der Marktführer unter den Browsern, kann in bestimmten Fällen ein seltsames Verhalten an den Tag legen. Beim Aufruf einer Seite baut diese nur sehr langsam oder gar nicht auf. Dabei sieht man unten links eine Statusmeldung mit dem Text

Sichere Verbindung wird hergestellt…

Vor allem bei Seiten die sich massenweise Tracking-Cookies oder Werbeinhalte aus verschiedensten Quellen holen, die also aus verschiedensten Domains Inhalte nachladen, kann dies ziemlich lange dauern. Im Extremfall führt es zu dieser Fehlermeldung:

ERR_TIMED_OUT

Der erste Gedanke für so einen Fall könnte eine Infektion des Rechners sein, wie hier jemand denkt: https://www.trojaner-board.de/189359-google-chrome-laedt-langsam-warten-diverse-homepages.html. Aber das konnte im aktuellen konkreten Fall ausgeschlossen werden. Auch war keiner der bekannten Antivirenscanner der Übeltäter. Weiter könnten noch Probleme mit IPv6 eine Rolle spielen oder einfach Probleme mit dem Router. Aber all diese Punkte lassen sich ganz schnell aus der Welt schaffen, indem man einfach prüft wie Edge reagiert. Mit Edge waren die Seiten ohne Probleme ladbar.

Auch Chrome zu deinstallieren und komplett neu zu installieren, explizit als 64-Bit Version, brachte keine Hilfe.

Es scheint also ein Chrome spezifisches Problem zu sein. Da Chrome gerne mit technischen Neuerungen glänzt, lag die Vermutung nahe, dass evtl. schon TLS 1.3 zum Einsatz kommt, aber das explizite Abschalten brachte auch keine Änderung. Sicher nutzen aktuelle Server nur selten TLS 1.3 aber es hätte ja sein können, dass eine Entscheidungsroutine ob 1.3 oder 1.2 verwendet wird Probleme machte. Aber wie gesagt brachte das auch nichts.

Beim weiteren Durchforsten des Internets kam dann auch einmal jemand und meinte, man müsse den Kryptographiedienst (Dienstname CryptSvc) von Windows neu starten. Da beim Aufbau einer sicheren Verbindung die Kryptographie eine Rolle spielt, war dies nicht so abwegig und brachte wohl auch eine Beschleunigung. Allerdings wenn Chrome verlassen und neu gestartet wurde, war alles wieder beim alten.

Bei weiterer Recherche kam dann dieser Bug von Chrome zutage: https://bugs.chromium.org/p/chromium/issues/detail?id=838707, “Win10 Spring Update 1803 causes ERR_TIMED_OUT”. Hier sind alle Probleme exakt beschrieben, auch dass Windows 10 v1803 zum Einsatz kam war der Fall.

In dem Bug-Thread werden einige Problemlösungen angedeutet, die effektivste Methode scheint aber zu sein, wenn der Kryptographiedienst mit anderen Rechten gestartet wird. Infos zur Aufgabe des Kryptographiedienstes: https://docs.microsoft.com/en-us/windows-server/security/windows-services/security-guidelines-for-disabling-system-services-in-windows-server#cryptographic-services. Standardmäßig wird er mit dem Netzwerkdienst-Konto (NT AUTHORITY\NETWORK SERVICE) gestartet. Wenn man nun bei den Eigenschaften des Dienstes dies auf Lokales Systemkonto (NT AUTHORITY\SYSTEM) ändert, dann scheint Chrome zufrieden zu sein und läuft wieder normal schnell.

In Powershell sieht diese Änderung so aus:

$svc = Get-WmiObject Win32_Service –filter "name=’CryptSvc’"
$svc.Change($null,$null,$null,$null,$null,$null,"LocalSystem", $null)
$svc.StopService()
$svc.StartService()

Eine weitere Variante das Problem zu lösen ist in der Registrierung rumzutoben und z. B. ProtectedRoot zu löschen aber das wäre noch sensibler als die Berechtigung des Diensts zu ändern.

Nicht auszuschließen ist, dass es sich evtl. um ein Problem im Zusammenhang mit Spectre handelt… Wer weiß das heute schon?

Server bootet nicht nach Installation einer Intel I350-T2V2 Netzwerkkarte

30 April 2018

Bei einer Aufrüstung eines Hyper-V Servers mit einer “Intel Ethernet Server Adapter I350-T2V2”-Karte bootete der Rechner nach dem Einstecken der Netzwerkkarte nicht mehr. Nicht einmal das BIOS des Rechners war erreichbar. Statt dessen erschien nur oben links ein blinkender Cursor auf schwarzem Hintergrund.

Der Server selber war schon etwas älter deshalb gab es keine BIOS-Updates. Was also tun? Die Beschreibung auf dieser Seite brachte die Lösung: https://communities.intel.com/thread/56362.

Im Prinzip war das Flashen der Firmware der Netzwerkkarte notwendig. Das passende Utility war dieses hier: https://downloadcenter.intel.com/download/19186, das sogenannte “Intel® Ethernet Connections Boot Utility, Preboot Images, and EFI Drivers”.

Jetzt wurde nur noch ein Rechner benötigt, der mit der Karte bootete, tatsächlich konnte ein anderer, älterer Windows-Rechner mit eingesteckter Karte problemlos booten. Damit konnte dann mittels (es war ein 32-Bit Windows, bei 64-Bit ist der Aufruf leicht anders)

BOOTUTILW32.EXE

die Netzwerkkarte ermittelt werden und mittels

BOOTUTILW32.EXE –up PXE –nic 1

aktualisiert werden. Zuvor musste aber noch die Datei BootIMG.FLB aus dem übergeordneten Verzeichnis in das Verzeichnis der BOOTUTILW32.EXE kopiert werden.

Mit dem Boot Utility wurde die Firmware der Netzwerkkarte von der Version 1.3.98 auf die Version 1.5.85 aktualisiert. Danach konnte der ursprüngliche Rechner mit der Netzwerkkarte problemlos gebootet und eingerichtet werden.

Apple iPhone taucht nicht im Windows Explorer auf, kein Zugriff auf Bilder möglich weil MTP fehlt

9 Februar 2018

Auf einem Rechner mit Windows 10 v1709 (64-Bit) schloss man per USB ein iPhone 7 an, es tauchte aber kein Eintrag im Windows Explorer auf. iTunes mit der aktuellen Version war auch installiert, also sollten alle Treiber aktuell verfügbar sein. Das manuelle aktualisieren der Treiber im Gerätemanager wurde auch immer nur mit der Meldung bestätigt, dass man bereits den aktuellen Treiber hat. Was tun?

Die Lösung ist relativ simpel. Man muss nur im Gerätemanager bei den USB-Controllern auf den Eintrag “Apple Mobile Device USB Driver” gehen und die Eigenschaften öffnen. Nun geht man auf das Register Treiber und klickt auf “Treiber aktualisieren”. Im nächsten Dialog klickt man “Auf dem Computer nach Treibern suchen” und dann auf “Aus einer Liste der verfügbaren Treiber auf meinem Computer auswählen”. Es stehen nun zwei Treiber zur Auswahl, der bereits bekannte “Apple Mobile Device USB Driver” und der “MTP-USB-Gerät”-Treiber. Wir wählen den MTP-Treiber. Wird der Treiber installiert, taucht automatisch im Gerätemanager der Eintrag “Tragbare Geräte” auf unter dem dann “Apple iPhone” zu sehen ist.

Nun ist auch das iPhone im Windows Explorer zu finden und nach Freigabe vom iPhone kann man nun problemlos auf den DCIM-Ordner des iPhone zugreifen.

Festplatten Kontingente bzw. Diskquota unter Windows mittels Kommandozeile setzen

28 September 2017

Da ein Server eines Kunden mitten in der Migration steckte war nirgends das passende Menü zu finden um die Speicherplatzkontingente zu setzen. Vom neuen Server war noch nichts zu sehen, obwohl die Benutzer bereits auf dem neuen Server umgezogen waren.

Die Lösung brachte dann die Verwendung der Kommandozeile in Form von FSUTIL.EXE, denn darüber konnte auf dem alten Server problemlos das Kontingent verändert werden.

C:\>fsutil quota
—- QUOTA Unterstützte Befehle —-

disable         Aktiviert Kontingentnachverfolgung und -durchsetzung.
track           Aktiviert Kontingentnachverfolgung.
enforce         Aktiviert Kontingentdurchsetzung.
violations      Zeigt Kontingentüberschreitungen an.
modify          Legt das Datenträgerkontingent für einen Benutzer fest.
query           Fragt Datenträgerkontingente ab.

So kann mittels “fsutil quota modify” das neue Kontingent gesetzt werden.

“Wie soll diese Website geöffnet werden?”-Dialog wegbekommen

10 März 2017

In bestimmten Situationen, vor allem nach einer Installation oder Deinstallation eines Programms, kann es bei einem neu eingerichteten Windows 10 dazu kommen, dass ein Dialog geöffnet wird mit dem Text:

Wie soll diese Website geöffnet werden?

App verwenden
—–
Standardbrowser verwenden

[  ]  Immer diese App zum Öffnen von <Website> verwenden

OK

Da die Installationen oder Deinstallationen meistens mit Adminrechten durchgeführt werden, kann es zu einer Situation kommen, wenn man die Meldung nicht beachtet und der eigentliche administrative Vorgang bereits abgeschlossen ist, dass die Meldung weiterhin am Bildschirm stehen bleibt und nicht mehr wegzubekommen ist. Das hat mit den fehlenden Rechten des Standardbenutzers nach der Installation zu tun.

Was also tun?

Entweder Rechnerneustart oder im Taskmanager die Datei OpenWith.EXE beenden.

Treiber von Windows 10 im Windows Server 2016 installieren wenn es keine offiziellen Treiber gibt, am Beispiel einer Intel-Netzwerkkarte

7 März 2017

Eigentlich sind sich Windows 10 und Windows Server 2016 recht nahe, je nach Versionsstand von Windows 10. Dennoch gibt es manchmal bei der verwendeten Hardware Einschränkungen in Bezug auf Treiber. In einem aktuellen Fall war in einem Rechner eine Intel I219-V Netzwerkkarte verbaut. Dieser Karte genügt natürlich heutigen Managementansprüchen in Servern nicht unbedingt und deshalb wurde in Server 2016 die Treiberunterstützung für diese Karte unterlassen. Was an dieser Karte aber komisch ist, ist dass es eine Zertifizierung im Windows Server Katalog dafür gibt: https://www.windowsservercatalog.com/item.aspx?idItem=985d89e0-d6d1-b9e0-654c-0209df71a8c7&bCatID=1468.

Was kann man machen um die Karte trotzdem nutzen zu können? Früher ging man her und änderte die zugehörige Treiber-INF-Datei und aktivierte die Windows 10 Treiber für Server 2016. Diese Methode wurde seit Windows Vista Zeiten immer schwieriger. Man benötigt nun passende Zertifikate, damit Änderungen an INF-Dateien autorisiert sind. Man kann aber in Server 2016 noch die bewährte Methode gehen, die Überprüfung der Treibersignatur auszuschalten, dann installiert man einmal die Treiber, ladet und segnet sie ab. Danach aktiviert man wieder die Prüfung der Treibersignaturen. Nun kann man die Geräte mit Windows 10 Treibern unter Windows Server 2016 nutzen.

Für obiges Beispiel beschreibt dieser Blogartikel den Vorgang sehr schön: http://blog.citrix24.com/install-windows-server-2016-core-intel-nuc/.

Hier mache ich aber eine komplette Beschreibung wegen ein paar Besonderheiten und weil oft Blogs im Internet auch verschwinden.

Ermittlung der HardwareID
Fangen wir an die betreffenden Geräte ausfindig zu machen. Normalerweise würden erkannte Netzwerkadapter mittels Get-NetAdapter auftauchen. Aber die Intel I219-V ist nicht dabei. Nun kann man wie im Blogartikel beschrieben mittels

GetWMIObject win32_PNPEntity |select name,deviceid |where {$_.Name match "Ethernet"}

die HardwareID ermitteln, welche

name     : Intel(R) Ethernet Connection I219-V
deviceid : PCI\VEN_8086&DEV_1570&SUBSYS_20638086&REV_21\3&11583659&0&FE

ergibt. Von dieser Info ist die VEN_8086&DEV_1570 von Bedeutung. Im Blogartikel wird noch eine zweite Variante genannt, die bezieht sich auf die WLAN-Karte, welche nicht unter Ethernet zu finden ist, sondern unter Network. Wenn man allerdings unter einem deutschsprachigen Windows diesen Befehl ausführt

GetWMIObject win32_PNPEntity |select name,deviceid |where {$_.Name match "Network"}

dann erscheint nicht die gesuchte Info, sondern

name                                   deviceid
—-                                   ——–
Microsoft Kernel Debug Network Adapter ROOT\KDNIC\0000

weil es Network nicht gibt. Man muss statt dessen nach

GetWMIObject win32_PNPEntity |select name,deviceid |where {$_.Name match "Netzwerkcontroller"}

suchen, um z. B. dieses Ergebnis zu bekommen:

name     : Netzwerkcontroller
deviceid : PCI\VEN_8086&DEV_24F3&SUBSYS_90108086&REV_3A
\4&A711841&0&00E0

Blöd und umständlich so was. Aber wir sind ja auf Server 2016, da gibt es neuere Möglichkeiten Hardwaredinge abzufragen:

Get-PnpDevice -Class Net| select status, friendlyname, instanceid|fl *

status       : OK
FriendlyName : Intel(R) Ethernet Connection I219-V
InstanceId   : PCI\VEN_8086&DEV_1570&SUBSYS_20638086&REV_21\3&11583659&0&FE

status       : Error
FriendlyName : Netzwerkcontroller
InstanceId   : PCI\VEN_8086&DEV_24F3&SUBSYS_90108086&REV_3A
\4&A711841&0&00E0

Prima. Hier sehen wir auch gleich, dass es beim Wirelesscontroller ebenso Probleme gibt, weil dort der Status Error steht. Dies war beim I219-V am Anfang natürlich auch, allerdings sind hier im Beispiel bereits die LAN-Treiber geladen.

Wir müssen uns also nur merken, dass wir anstatt der WMI-Abfrage von Win32_PNPEntity auch direkt Get-PnPDevice –Class Net verwenden können.

Treiber herunterladen und entpacken
Neben der HardwareID benötigen wir auch die passenden Treiber von Windows 10. In diesem Fall waren diese unter https://downloadcenter.intel.com/de/download/ unter dem Stichwort ProWin und ProsetWireless zu finden. Damit man aber mit den Dateien etwas anfangen kann, müssen diese aber entpackt werden. Leider wird es immer mehr zur Unsitte nicht mehr hinzuzuschreiben, wie man Treiber nur entpacken aber nicht installieren kann. Im Zweifel verwendet man 7zip um die Treiber aus den .EXE-Dateien zu extrahieren.

INF-Datei modifizieren
So nun muss man zu den IDs den passenden Treiber finden. Dazu ruft man

Get-ChildItem –Recurse | Select-String –Pattern "VEN_8086&DEV_1570" | group Path | select name

Name
—-
D:\IntelTreiber\PRO1000\Winx64\NDIS62\e1d62x64.inf
D:\IntelTreiber\PRO1000\Winx64\NDIS63\e1d63x64.inf
D:\IntelTreiber\PRO1000\Winx64\NDIS64\e1d64x64.inf
D:\IntelTreiber\PRO1000\Winx64\NDIS65\e1d65x64.inf

auf. Dabei sollte man bereits im Pfad stehen, wo man die Treiber entpackt liegen hat.

Eine Frage ergibt sich, welche Datei man nun bearbeitet? Im konkreten Fall die e1d65x64.inf. Mit den kryptischen Versionen 62, 63, 64 und 65 ist die NDIS-Version gemeint. Windows Server 2016 beherrscht zwar bereits NDIS 6.60 aber ist abwärtskompatibel, deshalb die 65 für Version 6.50. Hier findet man ein paar Infos zu den verschiedenen NDIS-Versionen bei Windowsversionen: https://en.wikipedia.org/wiki/Network_Driver_Interface_Specification.

Man ladet nun die INF-Datei einfach in Notepad, im obigen Beispiel so:

Notepad D:\IntelTreiber\PRO1000\Winx64\NDIS65\e1d65x64.inf

Nun müssen wir uns die Sektionen [Intel.NTamd64.10.0.1] und [Intel.NTamd64.10.0] genauer ansehen. Kurz die 10.0.1 steht für Windows Clientversionen, und 10.0 für Server.

Die Sektionen haben bei INF-Dateien eine besondere Bedeutung. Das lustige ist, dass in der betreffenden INF-Datei nicht nur Windows 10 sondern auch Server 2016 Informationen stehen, ja sogar explizit für die I219-V Netzwerkkarte. Allerdings wurde im für Server entscheidenden Abschnitt die I219-V ausgelassen!

Mehr Infos zu den Herstellerangaben bei INF-Dateien findet man hier, da wird auch der genaue Aufbau der Sektionsnamen beschrieben: https://msdn.microsoft.com/de-de/windows/hardware/drivers/install/inf-manufacturer-section.

Man fügt also unter [Intel.NTamd64.10.0] diesen Eintrag hinzu

%E1570NC.DeviceDesc%            = E1570.10.0.1,       PCI\VEN_8086&DEV_1570
%E1570NC.DeviceDesc%            = E1570.10.0.1,       PCI\VEN_8086&DEV_1570&SUBSYS_00008086
%E1570NC.DeviceDesc%            = E1570.10.0.1,       PCI\VEN_8086&DEV_1570&SUBSYS_00011179

dabei müsste auch

%E1570NC.DeviceDesc%            = E1570,       PCI\VEN_8086&DEV_1570
%E1570NC.DeviceDesc%            = E1570,       PCI\VEN_8086&DEV_1570&SUBSYS_00008086
%E1570NC.DeviceDesc%            = E1570,       PCI\VEN_8086&DEV_1570&SUBSYS_00011179

funktionieren und stellt sogar die sicherere Variante dar.

Treibersignaturprüfung ausschalten
Jetzt kommt der eigentlich wichtigste Punkt. Ohne diesen bekommt man die Sache nicht zum Laufen.

bcdedit /set LOADOPTIONS DISABLE_INTEGRITY_CHECKS
bcdedit /set TESTSIGNING ON
bcdedit /set NOINTEGRITYCHECKS ON

Für diese Änderung muss allerdings der Rechner neu gestartet werden, also

Restart-Computer

Treiber installieren
Nun kommt der spannende Moment, wenn man die Treiber lädt, ob es klappt.

pnputil.exe -i -a D:\IntelTreiber\PRO1000\Winx64\NDIS65\e1d65x64.inf

Wenn dann so was ausgegeben wird, hat alles geklappt:

Microsoft-PnP-Hilfsprogramm

Verarbeitungsinf.:            e1d65x64.inf
Der Treiber konnte auf einem Gerät dieses Systems installiert werden.
Das Treiberpaket wurde erfolgreich hinzugefügt.
Veröffentlichter Name:            oem2.inf

Versuche gesamt:              1
Anzahl erfolgreicher Importe: 1

Abschlussarbeit
Natürlich muss man nun die Treibersignaturprüfung wieder aktivieren.

bcdedit /set LOADOPTIONS ENABLE_INTEGRITY_CHECKS
bcdedit /set TESTSIGNING OFF
bcdedit /set NOINTEGRITYCHECKS OFF

 

Exchange Server 2010 Postfachweiterleitung und automatischen Abwesenheitstext setzen

5 März 2017

Die Vorgehensweise ist grundsätzlich hier https://support.microsoft.com/de-de/help/2667296/how-to-set-out-of-office-messages-by-using-exchange-2010-powershell beschrieben, allerdings fehlt die Möglichkeit auf eine externe SMTP-Adresse weiterzuleiten. Dieser Punkt wird ausführlich hier beschrieben: http://www.msxfaq.de/exchange/migration/forwardingsmtpaddress.htm.

Wir definieren zuerst eine Variable mit dem Namen des Benutzers:

$identity = "Benutzer"

Zunächst die Abfrage zu den aktuellen Einstellungen eines Benutzers:

Get-MailboxAutoReplyConfiguration -Identity $identity

RunspaceId       : 5531bcbd-6be3-4dad-80c3-dbd1ca1a97d3
AutoReplyState   : Disabled
EndTime          : 06.03.2017 08:00:00
ExternalAudience : All
ExternalMessage  :
InternalMessage  :
StartTime        : 05.03.2017 08:00:00
MailboxOwnerId   : mydomain.local/MyBusiness/Users/SBSUsers/benutzer
Identity         : mydomain.local/MyBusiness/Users/SBSUsers/benutzer
IsValid          : True

und noch die Einstellungen für die Weiterleitung der E-Mails abfragen:

Get-Mailbox –Identity $identity | fl *forw*, name

DeliverToMailboxAndForward : False
ForwardingAddress          :
ForwardingSmtpAddress      :
Name                       : Benutzer

Um die Weiterleitung nun zu aktivieren, verwendet man:

Set-Mailbox –Identity $identity –ForwardingSmtpAddress NeueAdresse@Irgendwo.de –DeliverToMailboxAndForward $true

Um die Weiterleitung wieder zu deaktivieren:

Set-Mailbox –Identity $identity –ForwardingSmtpAddress $null –DeliverToMailboxAndForward $false

Um nun dem ursprünglichen Absender eine Nachricht zukommen zu lassen, verwendet man Set-MailboxAutoReplyConfiguration:

$nachricht = "Guten Tag! Diese Adresse wird zum 30.4.20
17 abgeschaltet. Die E-Mail wird aber an meine neue Adresse weitergeleitet. Bei relevanten E-Mails antworte ich mit mein
er neuen E-Mail-Adresse."
Set-MailboxAutoReplyConfiguration –Identity $identity –AutoReplyState Enabled –InternalMessage $nachricht –ExternalMessage $nachricht

Hier wird für die interne, wie für externe Adressen die Nachricht aus $nachricht zurückgeschickt.

Fragt man die aktuelle Einstellung ab, dann sieht es so aus:

Get-MailboxAutoReplyConfiguration -Identity $identity

RunspaceId       : 5531bcbd-6be3-4dad-80c3-dbd1ca1a97d3
AutoReplyState   : Enabled
EndTime          : 06.03.2017 09:00:00
ExternalAudience : All
ExternalMessage  : <html>
                   <body>
                   Guten Tag! Diese Adresse wird zum 30.4.2017 abgeschaltet. Die E-Mail wird aber an meine neue Adresse
                    weitergeleitet. Bei relevanten E-Mails antworte ich mit meiner neuen E-Mail-Adresse.
                   </body>
                   </html>

InternalMessage  : <html>
                   <body>
                   Guten Tag! Diese Adresse wird zum 30.4.2017 abgeschaltet. Die E-Mail wird aber an meine neue Adresse
                    weitergeleitet. Bei relevanten E-Mails antworte ich mit meiner neuen E-Mail-Adresse.
                   </body>
                   </html>

StartTime        : 05.03.2017 09:00:00
MailboxOwnerId   : mydomain.local/MyBusiness/Users/SBSUsers/Benutzer
Identity         : mydomain.local/MyBusiness/Users/SBSUsers/Benutzer
IsValid          : True

Hier sieht man auch, dass man für Internal- und Externalmessage auch etwas HTML setzen könnte, wenn man sich beim Text künstlerisch betätigen wollte.

Warum schaltet sich dieser verdammte DHCP-Dienst am Windows Server ständig ab? Was hat das mit IPv6 zu tun?

5 Dezember 2016

Irgendwie stand ich gerade auf dem Schlauch und hab mich mit einem Problem länger als nötig beschäftigt um am Ende festzustellen, die Lösung ist logisch und ganz einfach. Es ging los, dass bei einem Kunden der Speedport gegen eine Fritzbox ausgetauscht werden sollte.

Zu Beginn war alles ganz einfach, Internetverbindung war schnell da. Aber dann gab es Probleme im Netz mit den Client-Rechnern nach einem Neustart. Dazu muss man wissen, dass bei der Fritzbox der IPv4-DHCP ausgeschaltet wurde. Egal wie oft man nun am Windows Server den DHCP-Server neu gestartet hat, er funktionierte immer kurz und war dann wieder ausgeschaltet. Sowas kennt man wenn ein zweiter DHCP-Server im Netz ist. Also nochmal auf der Fritzbox versichert, dass der Ipv4-DHCP ausgeschaltet war. Am Ende war nur noch der Server mit dem Client mit der Fritzbox verbunden. Klappte aber immer noch nicht!

Wo schaut man nach, wenn man solche Probleme hat? Richtig, in der Ereignisanzeige. Also kurz nach den DHCP-Server Logs geschaut:

Get-WinEvent -ListLog *dhcp*|select logname

LogName
——-
Microsoft-Windows-Dhcp-Client/Admin
Microsoft-Windows-Dhcp-Client/Operational
Microsoft-Windows-Dhcp-Server/FilterNotifications
Microsoft-Windows-Dhcp-Server/Operational
Microsoft-Windows-DhcpNap/Admin
Microsoft-Windows-DhcpNap/Operational
Microsoft-Windows-Dhcpv6-Client/Admin
Microsoft-Windows-Dhcpv6-Client/Operational

Ah alles klar:

Get-WinEvent -LogName Microsoft-Windows-Dhcp-Server/Operational -MaxEvents 10

TimeCreated                   ProviderName                                             Id Message
———–                   ————                                             — ——-
17.12.2015 12:52:43           Microsoft-Windows-DHCP-Server                           106 Die Rese
17.12.2015 12:52:43           Microsoft-Windows-DHCP-Server                           107 Die Rese
17.12.2015 12:49:25           Microsoft-Windows-DHCP-Server                           106 Die Rese
17.12.2015 12:48:23           Microsoft-Windows-DHCP-Server                           107 Die Rese
25.11.2015 09:12:51           Microsoft-Windows-DHCP-Server                           106 Die Rese
25.11.2015 09:12:24           Microsoft-Windows-DHCP-Server                           107 Die Rese
21.05.2014 14:25:11           Microsoft-Windows-DHCP-Server                           106 Die Rese

Wie 2015? Ich hab aktuell Problem und nicht 2015! Hä? Was geht hier. Auf jeden Fall ist es wie immer man sucht überall aber nicht an der richtigen Stelle!!!!

Irgendwann dachte ich, dass kann nicht sein und klar es war so. Denn man sollte ja auch wegen DHCP-Server Meldungen nicht bei Microsoft-Windows-DHCP-Server schauen sondern unter SYSTEM!!!! Ich könnte so kotzen…

Also mittels

Get-WinEvent -LogName system -MaxEvents 20

TimeCreated                   ProviderName                                             Id Message
———–                   ————                                             — ——-
05.12.2016 14:52:32           Service Control Manager                                7040 Der Starttyp des Diensts "…
05.12.2016 14:50:02           Microsoft-Windows-GroupPolicy                          1500 Die Gruppenrichtlinieneins…
05.12.2016 14:50:01           Microsoft-Windows-GroupPolicy                          1500 Die Gruppenrichtlinieneins…
05.12.2016 14:49:56           Service Control Manager                                7036 Dienst "Windows Modules In…
05.12.2016 14:49:25           Microsoft-Windows-DHCP-Server                          1043 Es wurde festgestellt, das…
05.12.2016 14:49:05           Service Control Manager                                7036 Dienst "DHCP-Server" befin…
05.12.2016 14:49:01           Microsoft-Windows-DHCP-Server                          1056 Der DHCP-Dienst wird auf e…
05.12.2016 14:45:31           Service Control Manager                                7036 Dienst "DHCP-Server" befin…
05.12.2016 14:45:31           Microsoft-Windows-DHCP-Server                          1054 Der DHCP/BINL-Dienst auf d…
05.12.2016 14:45:31           Microsoft-Windows-DHCP-Server                          1053 Der DHCP/BINL-Dienst hat e…
05.12.2016 14:45:19           Service Control Manager                                7036 Dienst "DHCP-Server" befin…
05.12.2016 14:45:15           Microsoft-Windows-DHCP-Server                          1056 Der DHCP-Dienst wird auf e…
05.12.2016 14:45:03           Microsoft-Windows-GroupPolicy                          1500 Die Gruppenrichtlinieneins…

geschaut und hier tauchen dann auch die üblichen Verdächtigen DHCP/BINL-Meldungen auf! Wenn man nun genauer nachschaut, wird es auch offensichtlich:

Get-WinEvent -LogName system -MaxEvents 20| where {$_.id -eq 1053}| ft message -Wrap

Message
——-
Der DHCP/BINL-Dienst hat einen anderen Server mit der IP-Adresse fe80::3a10:d5ff:fe89:bb02 in diesem Netzwerk ermittelt
, der zu der folgenden Domäne gehört: .

Also wo liegt nun das Problem? Warum hab ich oben immer geschrieben, dass ich den IPv4DHCP ausgeschaltet habe? Na klar, weil die Fritzbox auch noch einen IPv6DHCP hat und dieser munter weiter aktiv war. Und da im Netz nunmal unabhängig von IPv4 und IPv6 nur ein DHCP aktiv sein war, hat sich der Windows DHCP-Server immer schneller verabschiedet!

Also Lösung: Entweder IPv6 ganz abschalten oder den IPv6DHCP abschalten! Besser ist natürlich die zweite Variante.

Mal abgesehen davon, dass ich hätte schneller drauf kommen können. ist mir erst durch diese Geschichte wieder aufgefallen, wie inkonsistent die DHCP-Dienst-Sache unter Windowsservern ist. Einfach nur traurig…

Probleme mit leeren Bildschirm bei Sichern und Wiederherstellen unter Windows 7 und allgemeines Sicherungsdebugging

30 Mai 2016

Datensicherungen sind wichtig, gerade in Zeiten von Cryptolocker-Malware. Was macht man aber, wenn man mit einer leeren Seite und ohne Fehlermeldung begrüßt wird, wenn man den Sicherungsstatus überprüfen möchte?

In einem Fall unter Windows 7 zeigte der Aufruf der “Sichern und Wiederherstellen”-Seite über die Systemsteuerung einfach nur ein leeres Bild. Schlecht so was. Auch der direkte Aufruf von sdclt.exe brachte die gleiche Darstellung. Hier ist das Problem nochmal mit Bildern beschrieben: http://www.borncity.com/blog/2014/09/29/windows-sichern-und-wiederherstellen-bleibt-leer/.

Gut wenn die Oberfläche nichts anzeigt, dann schaut man halt tiefer und ein Aufruf von wbadmin get versions brachte erschreckendes zu Tage, dass die letzte Sicherung schon ein paar Wochen her ist!

Dann der nächste Blick in die Windows Ereignisanzeige unter Anwendungs- und Dienstprotokolle/Microsoft/Windows/Backup. Oh je, der Eindruck mit denen von wbadmin stimmt überein, keine Backups wurden für die letzten Wochen protokolliert.

An was liegt es? Ist womöglich die Ausführung in der Aufgabenplanung deaktiviert? Witzig: Nein, die scheint immer schön brav jeden Tag durchzulaufen und meldet keine Fehler!

Gibt es hier einen Masterplan? Keine Ahnung, zunächst kann man natürlich die Ressourcenüberprüfung mittels SFC.EXE /SCANNOW drüberjagen, doch die brachte nichts.

Jetzt sollte man sich mal Gedanken machen, welche Dienste für eine Datensicherung benötigt werden. Da gibt es drei:

PS> Get-Service wbengine, SDRSVC, VSS

Status   Name               DisplayName
——   —-               ———–
Stopped  SDRSVC             Windows-Sicherung
Stopped  VSS                Volumeschattenkopie
Stopped  wbengine           Blockebenen-Sicherungsmodul

stellt sich die Frage, lassen die sich starten?

PS> Start-Service wbengine, SDRSVC, VSS
start-Service : Der Dienst "Windows-Sicherung (SDRSVC)" kann aufgrund des folgenden Fehlers nicht gestartet werden:
Der Dienst SDRSVC kann nicht auf dem Computer . gestartet werden.

In Zeile:1 Zeichen:1
+ start-Service wbengine, SDRSVC, VSS
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service],
   ServiceCommandException
    + FullyQualifiedErrorId : CouldNotStartService,Microsoft.PowerShell.Commands.StartServiceCommand

PS> Get-Service wbengine, SDRSVC, VSS

Status   Name               DisplayName
——   —-               ———–
Stopped  SDRSVC             Windows-Sicherung
Running  VSS                Volumeschattenkopie
Running  wbengine           Blockebenen-Sicherungsmodul

OK, das ist eine Aussage: Der Dienst kann nicht gestartet werden, weil der Dienst nicht gestartet werden kann! Blöd so was, aber warum kann er nicht gestartet werden?

PS> Get-Service SDRSVC | fl *

Name                : SDRSVC
RequiredServices    : {RPCSS}
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
DisplayName         : Windows-Sicherung
DependentServices   : {}
MachineName         : .
ServiceName         : SDRSVC
ServicesDependedOn  : {RPCSS}
ServiceHandle       : SafeServiceHandle
Status              : Stopped
ServiceType         : Win32OwnProcess
StartType           : Disabled
Site                :
Container           :

Klar, wenn ein Dienst deaktiviert ist, dann kann er auch nicht gestartet werden!

Also setzen wir den Dienst auf seinen Standardwert:

PS> Set-Service SDRSVC -StartupType Manual

Nun kann man mittels SDClt.EXE oder, wie gewohnt, mit vielen Klicks den Punkt “Sichern und Wiederherstellen” aufrufen und siehe da, es wird wieder alles angezeigt!

Ob dann die Sicherung auch wirklich klappt? Keine Ahnung, aber wer so eine Einstellung hat, der hat vielleicht einen weiteren Dienst deaktiviert, also schauen wir uns noch die anderen Dienste an:

PS> Get-Service wbengine, SDRSVC, VSS| select name, displayname, starttype

Name     DisplayName                 StartType
—-     ———–                 ———
SDRSVC   Windows-Sicherung              Manual
VSS      Volumeschattenkopie            Manual
wbengine Blockebenen-Sicherungsmodul    Manual

Also sieht ja gut aus.

Da wir gerade dabei sind, wenn es schon Probleme gibt, dann helfen diese Abfragen (Powershell 3.0 muss vorhanden sein):

Get-WinEvent -LogName Microsoft-Windows-Backup|select -First 10

Get-ScheduledTask -Recurse | where name -match backup| select name,status,lastruntime,lasttaskresult, nextruntime| ft –AutoSize

Get-Service wbengine, SDRSVC, VSS| select name, displayname, starttype, status

vssadmin list writers

Bei Get-ScheduledTask ist wichtig LastTaskResult mit anzuzeigen, weil dies standardmäßig nicht mit aufgelistet wird aber wertvolle Hinweise geben kann.

Bei vssadmin list writers sind insbesondere die Angaben zum letzten Fehler der einzelnen Writer zu beachten! Eine Idee, wie man mit vssadmin umgeht, geben diese beiden Artikel: https://newyear2006.wordpress.com/2015/12/19/windows-8-1-backup-mit-wbadmin-bricht-mit-fehler-auf-das-bereitgestellte-sicherungsvolume-konnte-nicht-zugegriffen-werden-ab-bzw-fehlercode-0x807800c5/ und https://newyear2006.wordpress.com/2011/09/09/sbs2011-backup-bricht-mit-fehler-2155348129-ab-und-was-hat-das-mit-sharepoint-updates-zu-tun/.