Windows-Sicherheit mit der PowerShell Tipps für mehr Sicherheit mit Cmdlets aus der PowerShell

Von Thomas Joos Lesedauer: 4 min

Anbieter zum Thema

Firewall, Virenschutz, Zertifikate und andere Sicherheitsfunktionen lassen sich mit der PowerShell steuern, um die Sicherheit in Windows zu verbessern. Wir geben in diesem Beitrag Tipps, welche Möglichkeiten es dazu gibt.

Mit einigen Cmdlets können Admins die Systemsicherheit von Windows 10/11 und auch Windows Server 2016/2019, sowie Windows Server 2022 zum Teil deutlich verbessern.
Mit einigen Cmdlets können Admins die Systemsicherheit von Windows 10/11 und auch Windows Server 2016/2019, sowie Windows Server 2022 zum Teil deutlich verbessern.
(Bild: monsitj - stock.adobe.com)

Wir haben im Beitrag „PowerShell Security Best Practices“ bereits gezeigt, welche Rolle die PowerShell im Bereich der Security in Windows spielen kann. Im Beitrag „Mit der PowerShell nach offenen Ports suchen“ sind wir auf die Sicherheit von Windows im Netzwerk eingegangen und wie die PowerShell bei der Suche nach offenen Ports helfen kann.

Dieser Beitrag beschäftigt sich mit weiteren Möglichkeiten der PowerShell, mit denen die Sicherheit in Netzwerken zum Teil deutlich verbessert werden kann. Die meisten Cmdlets lassen sich dazu in Windows 10/11 genauso nutzen, wie in Windows Server 2016/2019 und Windows Server 2022.

Bildergalerie
Bildergalerie mit 8 Bildern

Microsoft Defender in Windows 11 wiederherstellen

Teilweise passiert es, dass Anwender vor allem im Home Office Microsoft Defender deinstallieren oder durch einen Virenscanner eines Drittanbieters ersetzen. Wenn die Wiederherstellung von Microsoft Defender wieder notwendig ist, weil der Dritthersteller-Scanner doch nicht so gut funktioniert wie erwartet, kann es bei der Deinstallation des Produktes zu Problemen führen. In diesem Fall hilft das Wiederherstellen von Microsoft Defender über die PowerShell. Dazu kann folgender Befehl genutzt werden:

Get-AppxPackage Microsoft.SecHealthUI -AllUsers | Reset-AppxPackage

Danach sollte in den Einstellungen von Windows 11 bei „Datenschutz und Sicherheit“ über „Windows-Sicherheit“ der Virenschutz überprüft und aktualisiert werden. Im Beitrag „Windows 10/11 braucht keinen externen Virenschutz“ zeigen wir die dazu notwendigen und noch weiteren Schritte, auch zum Schutz gegen Ransomware. Ob der Schutz aktiv ist, lässt sich in der PowerShell mit dem Cmdlet „Get-MpComputerStatus“ überprüfen. Wichtig ist an dieser Stelle vor allem, dass der Wert bei „AntivirusEnabled“ auf „True“ steht.

Definitionsdateien von Microsoft Defender in der PowerShell aktualisieren und Scan starten

In der PowerShell kann mit dem Cmdlet „Update-MpSignature“ auch gleich eine Aktualisierung der Definitionsdateien erfolgen. Ein Schnellscan lässt sich an dieser Stelle mit „Start-MpScan -ScanType QuickScan“ starten.

Anzeigen der letzten Malware-Angriffe auf einen PC in der PowerShell

Mit dem Cmdlet „Get-MpThreat“ zeigt die PowerShell die letzten Angriffe von Malware auf einen Rechner an und welche Malware versucht hat den Rechner zu attackieren.

Überprüfen der installierten Updates auf Computern im Netzwerk in der PowerShell

Mit dem Cmdlet „Get-Hotfix“ lassen sich alle relevanten Updates für Windows 11 in der PowerShell anzeigen. Hier ist auch zu sehen, wann diese installiert wurden und welcher Benutzer die Installation durchgeführt hat. Das Cmdlet unterstützt den Parameter „-ComputerName“. Dadurch lässt sich die Liste auch von anderen Computern abrufen.

Schutz vor Ransomware: Überwachter Ordnermodus

Der Überwachter-Ordnermodus in Windows 10/11 schützt Computer vor Ransomware. Wir haben den Schutz bereits im oben verlinkten Beitrag behandelt. der Überwachte-Ordnermodus lässt sich im Auditmodus betreiben, um zunächst sicherzustellen, dass keine wichtigen Anwendungen auf dem Rechner blockiert werden. Die Einstellungen dazu lassen sich in der PowerShell mit Admin-Rechten über den folgenden Befehl umsetzen:

Set-MpPreference -EnableControlledFolderAccess AuditMode

Um den Blockiermodus zu aktivieren, der für den Schutz gegen Ransomware sorgt, ist folgender Befehl möglich:

Set-MpPreference -EnableControlledFolderAccess Enabled

Um weitere Verzeichnisse in den Schutz einzubinden, kommt folgender Befehl zum Einsatz:

Set-MpPreference -ControlledFolderAccessProtectedFolders „<Verzeichnispfad>“

Attack Surface Reduction in Windows 10/11 mit der PowerShell überprüfen

Microsoft Defender kann mit Reduktion der Angriffsfläche (Attack Surface Reduction, ASR) die Angriffsfläche von Windows deutlich reduzieren. Der Schutz kann vor gefährlichen E-Mails oder Viren in Office-Dateien und PDFs schützen sowie Webbrowser vor gefährlichen Webseiten. Ob der Schutz aktiviert ist und wie dessen Einstellungen sind, lässt sich in der PowerShell mit dem folgenden Befehl überprüfen:

Get-MpPreference | select AttackSurfaceReductionRules_Ids, AttackSurfaceReductionRules_Actions

Steuern lassen sich die Regeln wiederum mit dem Cmdlet „Set-MpPreference“. Die Konfiguration lässt sich auch in den Gruppenrichtlinien über den folgenden Pfad steuern: Computerkonfiguration -> Richtlinien -> Administrative Vorlagen -> Windows-Komponenten -> Microsoft Defender Antivirus -> Microsoft Defender Exploit Guard -> Verringerung der Angriffsfläche.

PowerShell-Remoting auf Linux-Servern nutzen

Um die PowerShell zum Beispiel auf einem Linux-Server zu installieren und PowerShell-Remoting für die Verwaltung über das Netzwerk zu nutzen, ist folgende Vorgehensweise zu empfehlen:

sudo apt updatesudo apt install -y wget apt-transport-https software-properties-commonwget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb"sudo dpkg -i packages-microsoft-prod.debsudo apt updatesudo apt install -y powershell

Die PowerShell kann danach mit „sudo pwsh“ gestartet werden. Um PowerShell-Remoting zu installieren und zu nutzen, kommen danach folgende Befehle zum Einsatz:

Install-Module -Name Microsoft.PowerShell.RemotingtoolsEnable-SSHRemotingsudo service sshd restart

Danach kann auch von Windows aus eine Remote-PowerShell-Sitzung auf einem Linux-Computer geöffnet werden, zum Beispiel mit der Syntax:

Enter-PSSession -HostName ubuntu@192.168.1.110

Selbstsignierte Zertifikate in der PowerShell erstellen

Für viele Einsatzzwecke ist es notwendig ein Zertifikat zu nutzen. Allerdings ist es nicht immer erwünscht ein Zertifikat zu kaufen oder von einer internen Zertifizierungsstelle abzurufen. Daher lassen sich in Windows in der PowerShell auch selbstsignierte Zertifikate mit dem Cmdlet „New-SelfSignedCertificate“ erstellen, zum Beispiel mit:

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zur IT-Sicherheit

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung
New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname <FQDN des Servers>

Ein weiteres Beispiel ist:

New-SelfSignedCertificate -DnsName dbs.joos.int -CertStoreLocation cert:\LocalMachine\My

TLS-Einstellungen auf Windows-Servern testen

Über das PowerShell-Skript „Get-TLS.ps1“ können Admins die TLS-Einstellungen von Windows-Servern prüfen. So kann zum Beispiel überprüft werden, ob TLS 1.3 in Windows Server 2022 aktiv ist, oder noch eine ältere Version zum Einsatz kommt. Das Skript prüft verschiedene Einstellungen in der Registry ab.

TPM-Chip in der PowerShell prüfen

Der Trusted Platform Module-Chip (TPM) lässt sich mit dem Cmdlet „Get-Tpm“ überprüfen. Funktoniert der Chip nicht, lässt er sich auch gleich mit „Clear-Tpm“ zurücksetzen. Die Neueinrichtung startet wiederum mit „Initialize-Tpm“.

(ID:49203638)