Windows-Sicherheit mit der PowerShell Tipps für mehr Sicherheit mit Cmdlets aus der PowerShell
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.

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.
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 update
sudo apt install -y wget apt-transport-https software-properties-common
wget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb"
sudo dpkg -i packages-microsoft-prod.deb
sudo apt update
sudo 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.Remotingtools
Enable-SSHRemoting
sudo 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:
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)