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.
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.
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!