Set-RdpSignature #
ÜBERSICHT #
Signiert .rdp-Dateien mit rdpsign.exe und richtet die zugehörige Vertrauenskette ein.
SYNTAX #
Set-RdpSignature [-Path] <string> [[-CertSubject] <string>] [[-RenewBeforeDays] <int>]
[[-ValidityYears] <int>] [-KeepUnsignableFields] [-Elevate] [<CommonParameters>]
BESCHREIBUNG #
Nimmt eine einzelne .rdp-Datei oder ein Verzeichnis (ohne Rekursion) als Eingabe. Die Funktion stellt sicher, dass ein gültiges Signatur-Zertifikat im Benutzer-Zertifikatsspeicher liegt und erneuert es, wenn es fehlt oder innerhalb von -RenewBeforeDays abläuft. Sie trägt das Zertifikat in die Stores TrustedPublisher und Root ein (jeweils CurrentUser und LocalMachine), fügt den Thumbprint in die Policy TrustedCertThumbprints ein, setzt den Microsoft-offiziellen Rollback-Wert RedirectionWarningDialogVersion=1 (ohne den erscheint seit dem April-2026-Sicherheitsupdate KB5083769 / CVE-2026-26151 der neue Ressourcen-Umleitungs-Dialog auch bei gültiger Signatur), beendet laufende mstsc-Instanzen und signiert anschließend alle gefundenen .rdp-Dateien mit rdpsign.exe.
Standardmäßig werden vor dem Signieren Felder entfernt, die rdpsign.exe nicht in seinem internen Signaturumfang aufnimmt (redirectlocation, camerastoredirect, usbdevicestoredirect). Diese Felder führen sonst trotz gültiger Signatur zum mstsc-Vertrauensdialog. Mit -KeepUnsignableFields bleiben die Dateien unverändert.
Bricht mit Fehler ab, wenn rdpsign.exe nicht gefunden wird oder die Session keine Administratorrechte besitzt (HKLM-Schreibzugriff nötig).
PARAMETER #
-Path #
Type: string
Eine .rdp-Datei oder ein Verzeichnis. Bei einem Verzeichnis werden alle *.rdp-Dateien im obersten Level signiert (keine Rekursion in Unterordner).
-CertSubject #
Type: string
Default: "RDP-Signatur $env:COMPUTERNAME"
Subject des Zertifikats ohne CN=-Präfix. Standard: “RDP-Signatur $env:COMPUTERNAME”.
-RenewBeforeDays #
Type: int
Default: 30
Schwellwert für die Restlaufzeit in Tagen. Läuft das Zertifikat innerhalb dieser Anzahl Tage ab, wird es automatisch erneuert. Standard: 30.
-ValidityYears #
Type: int
Default: 10
Laufzeit eines neu erstellten Zertifikats in Jahren. Standard: 10.
-KeepUnsignableFields #
Type: switch
Verhindert die Vorverarbeitung der .rdp-Dateien. Nicht-signierbare Felder bleiben erhalten - dann kann der Dialog “Bestätigen Sie den Herausgeber dieser Remoteverbindung” trotz gültiger Signatur weiterhin erscheinen.
-Elevate #
Type: switch
Wird die Funktion ohne Administratorrechte aufgerufen, startet dieser Schalter per Start-Process -Verb RunAs eine neue PowerShell-Session mit UAC-Anforderung (gleiche Edition wie die aktuelle: PS 5.1 oder PS 7+), importiert EulandaXtools dort und führt den Aufruf mit den gleichen Parametern erneut aus. Das Ergebnis erscheint im neuen Fenster (-NoExit bleibt offen, damit die Ausgabe lesbar bleibt).
BEISPIELE #
Set-RdpSignature -Path 'C:\RDP\server.rdp'
Signiert genau diese Datei.
Set-RdpSignature -Path 'C:\RDP' -Verbose
Signiert alle .rdp-Dateien im Ordner (ohne Unterverzeichnisse).
VERWANDTE LINKS #
- https://learn.microsoft.com/de-de/windows-server/remote/remote-desktop-services/remotepc/understanding-security-warnings
- https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26151
HINWEISE #
Muss in einer als Administrator gestarteten PowerShell laufen. Nach dem Lauf sind alle laufenden mstsc-Instanzen beendet, damit die neue Policy beim nächsten Start greift.
Zum RedirectionWarningDialogVersion-Wert merkt Microsoft selbst an: “Ein zukünftiges Windows Update kann die Unterstützung für diese Einstellung auch bei älteren Versionen von Windows entfernen.” Der Rollback ist also als temporäre Maßnahme gedacht.