web-dev-qa-db-ja.com

単一の配列パラメーターを受け取るコンストラクターのNew-Objectを呼び出すにはどうすればよいですか?

PowerShellでは、_New-Object_を使用して、単一引数の.Netコンストラクターnew X509Certificate2(byte[] byteArray)を呼び出します。問題は、PowerShellのバイト配列でこれを行うと、

New-Object: "X509Certificate2"のオーバーロードと引数カウント: "516"が見つかりません。

48

驚いたことに、私はこれを試しましたが、うまくいくようです:

[byte[]] $certPublicBytes = something
$cert = [System.Security.Cryptography.X509Certificates.X509Certificate] $certPublicBytes
return $cert

どんな魔法が効くのかまだわかりませんので、説明コメントをいただければ幸いです。 :)

(注:上記のように角括弧タイプ名を使用すると、「値を変換できません "System.Byte []」を入力して「System.Security.Cryptography.X509Certificates」などのエラーが発生することもあります。 .X509Certificate」。エラー:「要求されたオブジェクトが見つかりません。」Keithが推奨する明示的なNew-Objectアプローチの方が良いようです!)

10