[Tips]任意のファイルにデジタル署名する

by HIRO 13. 4月 2009 12:39

デジタル証明書は自分で発行を行うことが可能です。

PowerShellでデジタル証明書を作成し、任意のファイルにデジタル署名を行う方法について説明します。

PowerShellには証明書ドライブ(cert:)があるのでこれを利用します。

証明書の取得は下記のようにして行います。

$cert = Get-ChildItem cert:\CurrentUser\My –CodeSign |     
?{$_.Subject –match “PowerShellUser}

これで証明書は$cert変数へ代入されます。

次に、任意のファイルにデジタル署名を行うわけですが、これにはSet-AuthenticodeSignature コマンドレットを使用します。

Set-AuthenticodeSignature –FilePath “デジタル署名を行うファイル” –cert $cert

これだけで任意のファイルへデジタル署名を行うことができます。

しかし、毎回入力するのは面倒なので、下記のように関数にしてみました。ついでに、先日紹介したtry-catchも使ってみました。

function global:Set-Cert([string]$path)
{
try
{
$cert = dir cert:\CurrentUser\My -codesign |
? { $_.Subject -match "PowerShell User" }
Set-AuthenticodeSignature -FilePath $path -cert $cert
"デジタル署名に成功しました"
}
catch [Exception]
{
"デジタル署名に失敗しました"
}
}

使い方は

PS > Set-Cert "デジタル署名するファイルのパス"

です。是非おためしください。

追記:2009/04/15

dormouseさんからご指摘いただいた箇所を修正しました。まさにその通りでした。

もう一台のPCからの転記ミスでした。失礼しました。

参考文献:

最新のブログ

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

PowerShell | Tips

コメント

コメントを書く


 

  Country flag

biuquoteredbluegreenyellowPowerShellTextFile
  • コメント
  • プレビュー
Loading



Calendar

<<  3月 2010  >>
月曜火曜水曜木曜金曜土曜日曜
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

View posts in large calendar
Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2010 PowerShell from Japan!!