| 
									
										
										
										
											2018-12-10 18:52:57 -08:00
										 |  |  | <#
 | 
					
						
							|  |  |  | .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, | 
					
						
							| 
									
										
										
										
											2019-06-14 08:29:20 -07:00
										 |  |  |     [string[]]$patterns=@("*.exe", "*.dll", "*.pyd", "*.cat"), | 
					
						
							| 
									
										
										
										
											2018-12-10 18:52:57 -08:00
										 |  |  |     [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
 | 
					
						
							|  |  |  | } |