Home | History | Annotate | Download | only in msi
      1 <#
      2 .Synopsis
      3     Recursively signs the contents of a directory.
      4 .Description
      5     Given the file patterns, code signs the contents.
      6 .Parameter root
      7     The root directory to sign.
      8 .Parameter patterns
      9     The file patterns to sign
     10 .Parameter description
     11     The description to add to the signature (optional).
     12 .Parameter certname
     13     The name of the certificate to sign with (optional).
     14 .Parameter certsha1
     15     The SHA1 hash of the certificate to sign with (optional).
     16 #>
     17 param(
     18     [Parameter(Mandatory=$true)][string]$root,
     19     [string[]]$patterns=@("*.exe", "*.dll", "*.pyd"),
     20     [string]$description,
     21     [string]$certname,
     22     [string]$certsha1,
     23     [string]$certfile
     24 )
     25 
     26 $tools = $script:MyInvocation.MyCommand.Path | Split-Path -parent;
     27 Import-Module $tools\sdktools.psm1 -WarningAction SilentlyContinue -Force
     28 
     29 pushd $root
     30 try {
     31     Sign-File -certname $certname -certsha1 $certsha1 -certfile $certfile -description $description -files (gci -r $patterns)
     32 } finally {
     33     popd
     34 }