| <# |
| .Synopsis |
| Recursively signs the contents of a directory. |
| .Description |
| Given the file patterns, code signs the contents. |
| .Parameter root |
| The root directory to sign. |
| .Parameter patterns |
| The file patterns to sign |
| .Parameter description |
| The description to add to the signature (optional). |
| .Parameter certname |
| The name of the certificate to sign with (optional). |
| .Parameter certsha1 |
| The SHA1 hash of the certificate to sign with (optional). |
| #> |
| param( |
| [Parameter(Mandatory=$true)][string]$root, |
| [string[]]$patterns=@("*.exe", "*.dll", "*.pyd", "*.cat"), |
| [string]$description, |
| [string]$certname, |
| [string]$certsha1, |
| [string]$certfile |
| ) |
| |
| $tools = $script:MyInvocation.MyCommand.Path | Split-Path -parent; |
| Import-Module $tools\sdktools.psm1 -WarningAction SilentlyContinue -Force |
| |
| pushd $root |
| try { |
| Sign-File -certname $certname -certsha1 $certsha1 -certfile $certfile -description $description -files (gci -r $patterns) |
| } finally { |
| popd |
| } |