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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

zipcopy~圧縮してコピー~ができたのでアップしておく

【zipcopyの概要】 大きなファイルやフォルダをネットワーク越しにコピーする際、圧縮してからコピーすることで、ネットワークの帯域を少しで使わないようにすることを目的とする。以下3つの手順を自動的に …

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

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

no image

VisualStudio2005

帰国後の1週間を乗り切った。 バカンスモードの体からビジネスモードに切り替えるのは、 なかなか厳しかったが、この1週間で徐々に慣れてきた。 夢のような南国リゾートとは違い、現実世界は厳しい。 さて、V …

PDFファイルを扱うプログラミング用ライブラリ一覧

以下の記事がよく読まれているみたいなので、もっと幅広く「PDFファイルを扱うプログラミング用ライブラリ一覧」という本記事を書いてみる気になった。 iTextSharpのバージョンとライセンスが難しい …

no image

CEditでドラッグ&ドロップ

プログラミングから離れてしばらく経ってしまった。 プロジェクト管理をやっていると、プログラミングをやることができなくなる。 対人間の仕事の合間にプログラムをやることは、おいらには無理だった。 プログラ …