当社が配布するmsi等の実行ファイルはMicrosoftが提供するTrusted Signingによりデジタル署名されています。
Trusted Signing 公式ドキュメントではSignTool.exeを使用する方法が詳しく書かれていますが、PowerShellで署名するためのTrusted Signingコマンドについては具体的に書かれていません。
まず最初にモジュールをインストールしておきます:
PS> Install-Module -Name TrustedSigning -RequiredVersion 0.4.1
コード署名のコマンドは次の通りです:
PS> Invoke-TrustedSigning -Endpoint (エンドポイントURL) -CodeSigningAccountName (Trusted Signing Accountのアカウント名) -CertificateProfileName (Certificate profiles の名前) -FileDigest SHA256 -TimestampRfc3161 http://timestamp.acs.microsoft.com -TimestampDigest SHA256 (署名するファイルの絶対パス)
処理の途中、ブラウザが立ち上がりAzureへのログインが必要となります。Azure CLIがインストールされていて az login
コマンドですでにAzureにログインしている場合には表示されません。
また、注意点として、最後のファイル名のパスは絶対パスである必要があります。(C:\Users\Hoge\package\hoge.msi など)