CAD日記

主にAutoCADのことについて書いているけど、近頃は投資系ネタに注力している。自動売買、仮想通貨、PC関係、プログラミングなど。@caddiary

ソフト開発

デジタル署名されているかどうかを複数ファイルに対して一括で確認する方法

投稿日:

デジタル署名というのはコードサイニングのことでもあり、スマートスクリーン対策またはISMS対応として行うもの。DigiCertやGMOグローバルサインからコードサイニング証明書を買って、signtool.exeでしかるべき暗号化方式を指定してexeやdllなどに安全なものだと記すこと。あるファイルについて、デジタル署名されているかどうかを確認するには、ファイルのプロパティからデジタル署名タブを開いてみるしかなく、大量にファイルがあったとして1個ずつ確認していると日が暮れる。

使うのはPowerShellで、カレントフォルダを移動しておいて、こんなコマンドを打てばよい。

Get-ChildItem -Path . -Include "*.dll","*.exe" -Recurse | Get-AuthenticodeSignature | Select status, Path | Sort -Property status

そうすると、カレントフォルダ配下のdllまたはexeを対象にデジタル署名されているかどうかを出力してくれる。
Validは有効という意味で、デジタル署名されているということ。
NotSignedは、デジタル署名されていないということ。

以下、コマンドの解説。
Get-ChildItem:フォルダ以下のファイルを取得する
-Recurse: 再帰で探索する
Get-AuthenticodeSignature:署名情報を取得する
Select status, Path:アウトプットする項目指定する
Sort -Property status:statusでソートする

PowerShellの特徴は、コマンドレットを使うのが特徴。動詞-名詞の形式がコマンドレット。何する何をということで、直感的にシステム操作をできるから、正にオブジェクト指向となる。

なお、signtool.exeでもデジタル署名されているかどうかはわかるが、このアウトプットが非常に煩雑で、Yes or Noの結果を出すことができなかった。デジタル署名には、誰がどんな署名をしていて有効なのかどうかというものもあるから、しっかり確認したいならこの方法でもよし。

コードサイニング証明書については有料で買うのが常套手段ではなるが、オレオレの自己署名という方法もあるし、一説ではマイクロソフトが個人プログラマ向けに無料でコードサイニングできるというのもある。この手の証明書の期限がどんどん短くなっていて、3年後には47日ごとに更新しなきゃいけなくなるという流れがあることから考えて、やっぱ金出して買うのがよいだろうな。

-ソフト開発

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

IS2008

「InstallShield おまえもか!」 まだ2007年だというのに、ソフト名に来年の年号を使う。 AutoCADがはじめたと思われる悪習。 (Windows Server 2008は、まだBet …

zipcopy Ver1.01リリース

以下でアップしていたzipcopyについて、ちょいと手直ししてVer1.01としてリリースする。 zipcopy~圧縮してコピー~ができたのでアップしておく zipcopyのダウンロードはここをクリッ …

no image

円周率

3.1415926535…。私が記憶しているのはここまでです。スーパーコンピュータを使って数億桁まで計算、なんてニュースをよく聞きますね。コンピュータの性能向上とアルゴリズムの工夫に対する …

PDFium ViewerによるPDFレンダリングがイケてる

PDFが電子ペーパーの絶対的な標準になったなか、PDFをプログラムであつかうのがとても簡単になってきた。

no image

TEMPフォルダ書き込みエラーが頻発したのはなぜだろう

「環境変数TEMPトラブルについて振り返る」という記事に書いた出来事は1か月ほど前に起きたことでありWindows Serverでもあったから、レアな事象としてとらえていたが、一昨日の金曜日に起きたこ …