ファイル サーバに保存しているPowerShell スクリプト ファイル(.ps1)をクライアントで実行するため、Set-AuthenticodeSignature コマンドレットを実行、スクリプト ファイルに自己署名証明書を追加しました。
しかし、実行結果のStatusがUnknownErrorになる現象が発生。
今回のこのエラーに対する対処法をメモ。
今回の現象
Set-AuthenticodeSignature コマンドレットの実行結果- SignerCertificate : null
- Status : UnknownError
Get-AuthenticodeSignature コマンドレットの実行結果
- SignerCertificate : null
- Status : NotSigned
原因および対処法
原因および対処法は、MSDN Blogsに書かれていました。"Set-AuthenticodeSignature" returns Unknown Error while registering the script with a certificate
原因
PowerShell ISE(アイス)で作成したスクリプト ファイルの文字コードは、”Unicode big endian”がデフォルト。文字コード ”Unicode big endian”で書かれたスクリプト ファイルに対し、自己署名証明書をを追加することが出来ないとのこと。
対処法
ノート パッド等を使い、文字コードを”Unicode big endian”から”UTF-8”に変更する文字コードを変更し、Set-AuthenticodeSignature コマンドレットを実行するとStatusがValidに変更されました。