UPDATE: Weiß ja nicht was bei Microsoft so aus der Wand dampft aber die gespeicherten PublisherPermissions verhindern scheinbar NICHT den Warndialog. Die Aktion die hier weiter unten beschrieben wird ist also eher akademischer Natur.
UPDATE 2: Specify SHA1 thumbprints of certificates representing trusted .rdp publishers
in User oder Computer Configuration\ Administrative Templates\ Windows Components\ Remote Desktop Services\ Remote Desktop Connection Client
ist unser Freund.
Microsoft hat mit den April Updates versucht den RDP Client sicherer zu machen, was ein klein wenig nach hinten losgegangen ist weil mit den erzwungenen „Fehlermeldungen“ kann niemand was anfangen.
Wenn man dann so wie ich einen RDP Wrapper hat der mit dynamisch erzeugten (und signierten) RDP Files im Enterpriseumfeld (=keine Dialoge erwünscht) arbeitet ist das mehr als ärgerlich.
Man kann jetzt die im Internet seit heute kursierende Policy anwenden die das Verhalten ausschaltet (und damit auch den eigentlich Zweck der Aktion töten) oder wie folgt vorgehen:
Wir brauchen SHA256 Thumbprint des Zertifikats welches die RDP Files signiert. Natürlich dynamisch und nicht statisch.
Kann man mit openssl lösen (openssl.exe x509 -noout -fingerprint -sha256 -inform pem -in meinzert.pem) aber wir wollens ja programmatisch machen (davon ausgehend dass das Zertifikat in oCert aus dem Store der Wahl gelesen wurde):
using System.Security.Cryptography; // für SHA256Managed
using System.Security.Cryptography.X509Certificates; // fürs Cert/RawData
using System.Linq; // fürs Aggregate
string sSHA256Thumbprint = new
SHA256Managed().ComputeHash(oCert.RawData).Aggregate(String.Empty, (sHash, nByte) => sHash + nByte.ToString("x2"));
Mit Powershell gehts natürlich auch, hier das erstbeste Zertifikat im Maschinenstore:
$SHA256Thumbprint=((new-object system.security.cryptography.sha256managed).ComputeHash((dir cert:localmachine\my)[0].RawData)|% ToString X2) -join ''
Diesen SHA256 Thumbprint (erweitert um ein „00“ hinten) legen wir als Key dann unter HKCU/Software/Microsoft/Terminal Server Client/PublisherPermissions an.
In diesem Key muss man dann für jedes Mapping welches man verwenden will einen Wert mit 1 (enabled) oder 0 (disabled) erzeugen, also beispielsweise: Drives, Printers, Clipboard, SmartCards.
Sieht dann beispielhaft so aus:

Um den „willst du überhaupt RDP Files zulassen“ Dialog zu unterdrücken kann man auch noch den Wert HKCU/Software/Microsoft/Terminal Server Client/RdpLaunchConsentAccepted erzeugen und auf 1 setzen.
