Per Standard prüft die Funktion “Windows Updates” täglich um 3:00 Uhr ob Aktualisierungen unter anderem für die Microsoft Security Essentials und den Windows Defender zur Verfügung stehen und installiert diese. Sollte die Standard-Konfiguration geändert worden sein, da z.B. im Rahmen einer monatlichen Wartung oder erst nach Freigabe durch die Qualitätssicherung oder eines Softwareherstellers Updates installiert werden, so veraltet die Schutzfunktion recht schnell. Auf der anderen Seite möchte man i.d.R. möglichst schnell aktuelle Signaturen haben.

Lösbar ist das Thema mittels eines einfachen Befehls der als Aufgabe hinterlegt wird:

MpCmdRun.exe -signatureUpdate

Die Datei “MpCmdRun.exe” für Microsoft Security Essentials (Windows 7) bzw. Windows Defender (Windows 8.x) befindet sich unter

Windows 7 mit installierten Microsoft Security Essentials

C:\Program Files\Microsoft Security Client

Windows 8.x

C:\Program Files\Windows Defender

Der Windows Defender unter Windows 7 beinhaltet zwar ebenfalls eine “MpCmdRun.exe”, diese hat augenscheinlich nichts mit den Updates zu tun. Als Intervall kann z.B. vier Stunden verwendet werden.

Tipp: Um nach dem Booten oder dem Aufwecken aus einem Energiesparmodus möglichst schnell aktuelle Signaturen zu erhalten, in der Aufgabe den Haken setzen bei

Aufgabe so schnell wie möglich nach einem verpassten Start ausführen

Der Vollständigkeit halber sei erwähnt, das der Windows Defender unter Windows 8.x den Funktionsumfang der Microsoft Security Essentials enthält.

Scheinbar bekommt allerdings “Windows Updates” nichts von diesen Aktualisierungen mit, da es munter bis zur nächsten Überprüfung auf neue Updates verfügbare Aktualisierungen für Windows Defender meldet. Dies ist allerdings nur Kosmetik.

Update-Skript

Möchte man den oben genannten Befehl im Rahmen eines Skript ausführen, so ist der Pfad anzugeben, ferner lässt sich die Ausgabe protokollieren. Anbei ein Beispiel:

@echo off

rem Konfiguration

 set LogDir="C:\Skripte\Windows Defender\Logs"

rem Aktualisierung ausfuehren und Protokoll schreiben

 cd %LogDir%

 echo %date% - %time% - Start Signature Update >> %date%.txt

 "C:\Program Files\Windows Defender\MpCmdRun.exe" -signatureUpdate >> %date%.txt

 echo %date% - %time% - End Signature Update >> %date%.txt
 echo. >> %date%.txt

rem Alte Protokolle nach 30 Tagen entfernen

 DelAge32.exe "*.txt" 30

Dieses Skript wird im Intervall ausgeführt und protokolliert die Ausgabe. Die Logs werden mit Datum erstellt um eine gewisse Übersicht zu gewährleisten. Ferner werden über das Tool DelAge32 Protokolle die älter als 30 Tage sind entfernt.

Hinweis: Die Datei “DelAge32.exe” ist im Ordner “C:\Skripte\Windows Defender\Logs” gespeichert, da es andernfalls zu einem Fehler kommt.

Logging / Troubleshooting

Das Protokoll das vom Skript erzeugt wird, enthält z.B. folgende Einträge:

17.05.2015 - 10:21:14,05 - Start Signature Update 
Signature update started . . .
ERROR: Signature Update failed with hr=80070643
CmdTool: Failed with hr = 0x80070643. Check C:\Users\ADMINI~1\AppData\Local\Temp\MpCmdRun.log for more information
17.05.2015 - 10:21:31,33 - End Signature Update 
 
17.05.2015 - 11:00:00,08 - Start Signature Update 
Signature update started . . .
Signature update finished.
17.05.2015 - 11:00:27,78 - End Signature Update

Wie man erkennen kann, scheiterte eine Aktualisierung. Beim nächsten Aufruf klappte das Update wieder. Ferner findet sich ein Verweis auf das “MpCmdRun”-eigene Log, das im temporären Ordner des Benutzers geschrieben wird, der den Befehl ausgeführt hat.

So oder so wird seitens Microsoft ein Protokoll erstellt, das im Fehlerfall analysiert werden kann:

-------------------------------------------------------------------------------------
MpCmdRun: Command Line: "C:\Program Files\Windows Defender\MpCmdRun.exe"  -signatureUpdate 
 Start Time: ‎So ‎Mai ‎17 ‎2015 10:21:14

Start: MpSignatureUpdate()
Update started 
Search Started (MU/WU update) (Path: http://www.microsoft.com)...
Search Completed 
Download Started...
Download Completed 
Download Completed 
Installation Started...
Time Info - ‎So ‎Mai ‎17 ‎2015 10:21:31 Update failed with hr: 0x80070643
Installation Completed 
Update failed with hr: 0x80070643
Update completed with hr: 0x80070643
ERROR: Signature Update failed with hr=80070643
MpCmdRun: End Time: ‎So ‎Mai ‎17 ‎2015 10:21:31
-------------------------------------------------------------------------------------


-------------------------------------------------------------------------------------
MpCmdRun: Command Line: "C:\Program Files\Windows Defender\MpCmdRun.exe"  -signatureUpdate 
 Start Time: ‎So ‎Mai ‎17 ‎2015 11:00:00

Start: MpSignatureUpdate()
Update started 
Search Started (MU/WU update) (Path: http://www.microsoft.com)...
Search Completed 
Download Started...
Download Completed 
Download Completed 
Installation Started...
Time Info - ‎So ‎Mai ‎17 ‎2015 11:00:27 Installation Completed 
Update completed succesfully. (hr:0x00000000)
Finish: MpSignatureUpdate()
MpCmdRun: End Time: ‎So ‎Mai ‎17 ‎2015 11:00:27
-------------------------------------------------------------------------------------

Wirklich weiterhelfen tun beide Protokolle in diesem Fall leider nicht.

Quellen

Microsoft TechNet Magazine – Run (and Automate) Windows Defender from the Command Line

addictivetips – Command Line Utility MpCmdRun.exe – Microsoft Security Essentials

Update 18.05.2015

Kleines Update bei der Angabe der Pfade von Windows 7 und 8.x. Beitrag erweitert um Angaben zu Windows 7 und Windows Defender.