Public/Add-Signature.ps1
Function Add-Signature { param( [Parameter(ParameterSetName="File")] [string]$FilePath, [Parameter(ParameterSetName="Directory")] [string]$Directory, [Parameter(ParameterSetName="File", Mandatory=$true)] [Parameter(ParameterSetName="Directory", Mandatory=$true)] [string]$Hash, [Parameter(ParameterSetName="File")] [Parameter(ParameterSetName="Directory")] [string]$Sha1 ) try { switch ($PSCmdlet.ParameterSetName) { "File" { $Command = "signtool.exe sign /a /fd $Hash $FilePath" if ($Sha1 -ne "") { $Command = "signtool.exe sign /sha1 $Sha1 /fd $Hash $FilePath" } Invoke-Expression $Command } "Directory" { $ChildItems = Get-ChildItem $Directory -Recurse $ChildItems | ForEach-Object { $Command = "signtool.exe sign /a /fd $Hash $($_.FullName) /q" if ($Sha1 -ne "") { $Command = "signtool.exe sign /sha1 $Sha1 /fd $Hash $($_.FullName) /q" } Invoke-Expression $Command } } } } catch { Write-Error "Unable to complete signing. $_" } } # SIG # Begin signature block # MIIDOQYJKoZIhvcNAQcCoIIDKjCCAyYCAQExDzANBglghkgBZQMEAgMFADCBmwYK # KwYBBAGCNwIBBKCBjDCBiTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63 # JNLGKX7zUQIBAAIBAAIBAAIBAAIBADBRMA0GCWCGSAFlAwQCAwUABECqzf/RYI/O # vp73JIicWfcl4u1uIXXN5xpdQtGKM4XntnbedSRjZT5oe46pIgVY4gwGvVeWn1ZR # r4FicZUScfG+oIIBRTCCAUEwgeigAwIBAgIUJUrhIyYe0Ijmq8lkl4K8jyNrTDUw # CgYIKoZIzj0EAwIwIDEeMBwGA1UEAwwVY29ubm9yQG5vdXNlbGVzcy50ZWNoMCAX # DTI0MDUwNTA0MDUyOVoYDzIyMjIxMjIyMDAwMDAwWjAgMR4wHAYDVQQDDBVjb25u # b3JAbm91c2VsZXNzLnRlY2gwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFc0rS # N95xEemn7/TlV7WGrIJs0xXd0L7IdY0nu5hVqaR9FJ7DD/lV/8tgAPgOw8756FTv # r3889XN3rSir8uLlMAoGCCqGSM49BAMCA0gAMEUCIQD9FOnUCgckJaGI3Hgqkqzn # n7cRN8O9FESkoAKapUA/8gIgD6P7+V2DIwzPSBPPY7W07BZ3X2r29L7KHZ8ZUcrS # m2wxggEnMIIBIwIBATA4MCAxHjAcBgNVBAMMFWNvbm5vckBub3VzZWxlc3MudGVj # aAIUJUrhIyYe0Ijmq8lkl4K8jyNrTDUwDQYJYIZIAWUDBAIDBQCgfjAQBgorBgEE # AYI3AgEMMQIwADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDBPBgkqhkiG9w0B # CQQxQgRA17InNL9dUY7WFUWNlHsWid659x1HO4hBEmQSPz86a5t0ZBIq2ZR5xzvc # FmpwCHFy4hSYjYJrvAd0xlOU4liMKTALBgcqhkjOPQIBBQAESDBGAiEAsCHTbanA # VFmcgB1KKJVKMsmvm5G8JnWvUo6b3ZDj2y0CIQDgwBeRnqsbIC5nCf7RtAlEcqFw # zaItjLrhj/zREJqd/g== # SIG # End signature block |