Archiv für den Monat: Juli 2018

Wenn das Laden einer Assembly per Add-Type mit der Fehlermeldung „Operation not supported“ fehlschlägt…

Das Laden einer Assembly in einem PowerShell-Skript ist im Grunde sehr einfach: Per Add-Type und dem Path-Parameter.

Vor kurzem hatte ich einen Fall, bei dem sich eine Assembly (Npgsql.dll für den Zugriff auf PostgreSQL-Datenbanken) einfach nicht laden lies. Es war frustrierend, da mir wieder einmal klar wurde wieviel (Lebens-)zeit ich schon mit solchem Sch… verbracht hatte (sorry;).

Am Ende war die Lösung so trivial, dass ich einen Tritt in den Hintern verdient gehabt hätte. Ich hatte vergessen, die Datei zu „entsperren“ also den Zone.Identifier-ADS aus der Datei zu entfernen.

Nach einem Neustart der ISE lies sie sich problemlos laden. Ich hätte vielleicht auch eher nach dem Fehlercode 0x80131515 googlen sollen. Dann wäre ich auf einen StackOverflow-Beitrag gestoßen, der alles erklärt:

https://stackoverflow.com/questions/13799260/powershell-runtime-exception-could-not-load-file-or-assembly

„Suchet und ihr werdet finden“ (Matthäus 7,7)

Kleine Tipps für Zwischendurch: Hex-Zahlen als Dezimalzahlen ausgeben

Das Umwandeln eines Hex-Wertes in einen Dezimalwert ist wirklich sehr einfach:

„Hex“ ist aber keine „magische Zutat“, sondern die wie immer sehr praktische Eigenschaft der PowerShell, das die Felder einer Konstantenliste nicht nur nicht vollständig qualifiziert werden müssen, sondern auch abgekürzt werden können. Offiziell wäre der Name System.Globalization.NumberStyles.HexNumber.