Pavel Ignatov - Fotolia

Sicherheit per PowerShell: Windows Defender verwalten und steuern

Microsofts eigene Sicherheitslösung Defender lässt sich ganz trefflich von Nutzern wie Admins per Kommandozeile und PowerShell-Cmdlets kontrollieren.

Die AV- und Sicherheitslösung Windows Defender steht schon seit den Zeiten von Windows 7 zur Verfügung. Sie genoss eine ganze Weile nicht den besten Ruf. Mit dem aktuellen Creators Update für Windows 10 hat der Softwarehersteller diese Software nun deutlich erweitert. Dazu gehört unter das sogenannte „Windows Defender Security Center“, dass eine deutlich besser in Windows 10 integrierte Oberfläche und zudem neuen Möglichkeiten wie etwa einen sogenannten Integritätsbericht zu bieten hat.

Nachdem der Windows Defender nun auch im Windows Server 2016 integriert wurde, hat Microsoft auch den Dienst Windows Defender Advanced Threat Protection (ATP) weiter ausgebaut.

Allerdings hat die Desktop-Version auf dem Server 2016 noch denselben Stand wie auf dem aktuellen Windows-10-Release: So findet sich hier das Security Center (noch?) nicht, sondern die Nutzer sehen die alte Defender-Oberfläche. Trotzdem ist es sowohl auf dem Server als auch auf den Windows-10-Systemen möglich, diese Sicherheitssoftware von der Kommandozeile und mittels entsprechender PowerShell-Cmdlets einheitlich zu steuern.

Ohne GUI – die Kommandozeilenversion

Nicht nur für Administratoren gibt es genug Gründe, warum sie manchmal nicht mit einer GUI, sondern direkt von der Kommandozeile aus arbeiten möchten (oder müssen). Auch für den Windows Defender hat Microsoft standardmäßig die Möglichkeit vorgesehen, die Software direkt von der Kommandozeile aus zu starten und einzusetzen.

Abbildung 1: Windows Defender bietet neben der Möglichkeit via PowerShell-Cmdlets gesteuert zu werden, auch die Option, direkt von der Kommandozeile aus angesprochen zu werden. Dafür sollte aber der Pfad C:\Programme\Windows Defender explizit angegeben werden, da dieser normalerweise nicht Teil des Standardpfades ist.

Das Programm findet sich im Pfad C:\Programme\Windows Defender und trägt den Namen MpCmdRun.exe, der für „Microsoft Malware Protection Command Line Utility“ steht. Da dieser Pfad in der Regel nicht Teil des Standardsuchpfads unter Windows ist, müssen Anwender entweder den vollqualifizierten (absoluten) Pfad angeben oder in dieses Verzeichnis wechseln, wenn sie das Programm von der Kommandozeile aus starten wollen. Die geschieht dann mittels des Aufrufs:

./MpCmdRun.exe

Wichtig dabei auch: Es muss eine Kommandozeile beziehungsweise PowerShell-Konsole mit Administratorrechten zum Einsatz kommen, damit ein Nutzer mit dieser Software arbeiten kann. Mittels des Aufrufs./MpCmdRun -? (oder -h)zeigt das Kommando seine recht umfangreiche Liste an Optionen. So kann die Untersuchung des PCs mittels ./MpCmdRun -scan ausgeführt werden und mit ./MpCmdRun -signatureupdate die Definitionen der AV-Signaturen auf den aktuellen Stand gebracht werden.

Automatisierung und Skripts: Besser gleich die PowerShell einsetzen

Somit steht Administratoren schon mal ein Weg zur Verfügung, die Arbeit mit dem Windows Defender zu automatisieren. Doch die „normale“ Kommandozeile, die auch Microsoft immer weiter in den Hintergrund drängt, bietet einfach nicht genug Möglichkeiten, um Skripts zu erstellen.

Auf dem Server 2016 ist der Windows Defender als Standard vorhanden, wenn auch die neue Oberfläche des Defender Security Centers dort noch nicht Einzug gehalten hat. Die PowerShell-Cmdlets können trotzdem problemlos eingesetzt werden.
Abbildung 2: Auf dem Server 2016 ist der Windows Defender als Standard vorhanden, wenn auch die neue Oberfläche des Defender Security Centers dort noch nicht Einzug gehalten hat. Die PowerShell-Cmdlets können trotzdem problemlos eingesetzt werden.

Dafür ist die PowerShell weitaus besser geeignet und so stehen dann sowohl auf den Windows-10-Systemen als auch auf den Rechner unter Windows Server 2016 entsprechende Powers-Cmdlets bereit. Diese sind Teil des PowerShell-Moduls Defender, so dass es sicher ein guter Anfang ist, zunächst einmal festzustellen, welche Cmdlets dieses Modul zu bieten hat. Der Aufruf Get-Command -Module Defender listet dann zwölf Cmdlets auf. Nutzer sollten auch hier daran denken, eine PowerShell-Konsole mit Administrator-Rechten zu verwenden. Einen grundsätzlichen Überblick über das aktuelle System erhalten Anwender dabei mit dem Aufruf Get-MpComputerStatus

Dieser Aufruf zeigt den Status dieser Sicherheitssoftware auf dem System an. Mit der Option -AsJob kann das Cmdlet auch als Hintergrund-Job laufen, ideal für die Fälle, in denen die Überprüfung länger dauern sollte. Eine weitere Option namens -CimSession ermöglicht es dann auch, den Befehl in einer Remote-Session oder auf einem Remote-System ablaufen zu lassen.

Wem die Ausgabe dieses Cmdlets zunächst einmal zu umfangreich ist, der sollte sich daran erinnern, dass es sich hier um die PowerShell handelt und es entsprechend einfach ist, beispielsweise nur die gewünschte Information angezeigt zu bekommen. Geht es also darum, nur die Informationen zu den Versionsnummern der Signaturen anzuzeigen, so helfen eine Pipe zum Select-Objekt und der Einsatz des Wildcard-Zeichens „*“:

Get-MpComputerStatus | select *version

Noch interessanter kann es in solchen Fällen häufig sein, festzustellen, wann diese Definitionen zum letzten Mal ein Update erfahren haben:

Get-MpComputerStatus | select *updated, *version

Wie bei allen PowerShell-Cmdlets üblich, steht eine umfangreiche Online-Hilfe bereit, die grundsätzlich auf die folgende Art aufgerufen werden kann:

Get-Help <Name des Cmdlets> -Detailed (oder -Full für die komplette Anzeige)

Sollten sich die entsprechenden Hilfedateien noch nicht auf dem System befinden, so kann die PowerShell diese problemlos vom Netz nachladen. Per Eingabe von „Update-Help“ ist das auch jederzeit manuell möglich. Auch mit der PowerShell können Anwender natürlich direkt einen Scan-Lauf auf ihrem System starten:

Start-MpScan -ScanType QuickScan

Beim „ScanType“ können Anwender hier zwischen „QuickScan“, „FullScan“ und „CustomScan“ auswählen. Natürlich ist es auch problemlos möglich, nur bestimmte Bereiche der Festplatte zu untersuchen:

Start-MpScan -ScanPath <Pfad-, Ordner- oder Dateiname>

Wird bei diesem Aufruf wie hier kein ScanType angegeben, so startet die Überprüfung automatisch einen „QuickScan“ auf das Zielobjekt. Wer seine Signaturen zuvor noch manuell auf den aktuellen Stand bringen möchte, kann diese mit folgendem Aufruf erreichen:

Update-MpSignature

Das Cmdlet Update-MpSignature zeigt leider standardmäßig keine Informationen an, falls aktuell keine neueren Signaturen zur Verfügung stehen. Hier hilft es, die Option „-verbose“ zu verwenden und anschließend mit Hilfe von GetMpComputerStatus die Aktualität der Signaturen zu verifizieren.

Folgen Sie SearchSecurity.de auch auf Twitter, Google+, Xing und Facebook!

Nächste Schritte

Windows 10 Creators Update: Neuerungen bei Sicherheit und Datenschutz

Kostenloses E-Handbook: Die Sicherheit von Windows und Office 365 verbessern

Kostenloses E-Handbook zu den wichtigsten neuen Cmdlets der PowerShell 5.0

Die Sicherheit der PowerShell per Gruppenrichtlinie optimieren

Erfahren Sie mehr über Bedrohungen