##################################################################### # Sign PS1 Script.ps1 # Version 1.5 # # Automatically sign PowerShell script from .PS1 file context menu # # Require PowerShell V2, not compatible with PowerShell 1.0 # # Vadims Podans (c) 2009 # http://www.sysadmins.lv/ ##################################################################### #requires -Version 2.0 $FilePath = Read-Host "Specify path to hold SignIt.PS1" if (Test-Path $FilePath) { $FilePath = $FilePath + "\" + "SignIt.ps1" $RegPath = "Registry::HKLM\Software\Classes\Microsoft.PowerShellScript.1\Shell\Sign It\command" $RegValue = "C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -WindowStyle Hidden -noprofile -command $FilePath '%1'" New-Item -Path $RegPath -Force -ErrorAction SilentlyContinue if (Test-Path $RegPath) { New-ItemProperty -Path $RegPath -Name "(Default)" -Value $RegValue New-Item -ItemType file -Path $FilePath -Force if (Test-Path $FilePath) { $exefile = 'param ($file) function _msgbox_ ($title, $text, $type = "None") { [void][reflection.assembly]::LoadWithPartialName("System.Windows.Forms") $msg = [Windows.Forms.MessageBox]::Show($text, $title, [Windows.Forms.MessageBoxButtons]::ok, [Windows.Forms.MessageBoxIcon]::$type) } $cert = @(dir cert:\currentuser\my -codesigning)[0] if (!$cert) { _msgbox_ -title "Error" -text "Here is no valid signing certificate!" -type "Error" exit } $status = Set-AuthenticodeSignature "$file" $cert -TimestampServer "http://timestamp.verisign.com/scripts/timstamp.dll" if ($status.status -eq "Valid") { _msgbox_ -title "Success" -text "Script is now signed! Enjoy!" } else { _msgbox_ -title "Error" -text $status.StatusMessage -type "Error" } exit' Set-Content -Path $FilePath -Value $exefile &$filepath $filepath } else { Write-Warning "Unable to create file in: $FilePath. Path is incorrect or you haven't sufficient permissions" } } else { Write-Warning "Unable to create registry key. May be you haven't sufficient permissions to HKLM hive" } } # SIG # Begin signature block # MIIQNAYJKoZIhvcNAQcCoIIQJTCCECECAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUj/+sx78xNHZHCaZzwpmfGLqG # ugKgggykMIIDejCCAmKgAwIBAgIQOCXX+vhhr570kOcmtdZa1TANBgkqhkiG9w0B # AQUFADBTMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xKzAp # BgNVBAMTIlZlcmlTaWduIFRpbWUgU3RhbXBpbmcgU2VydmljZXMgQ0EwHhcNMDcw # NjE1MDAwMDAwWhcNMTIwNjE0MjM1OTU5WjBcMQswCQYDVQQGEwJVUzEXMBUGA1UE # ChMOVmVyaVNpZ24sIEluYy4xNDAyBgNVBAMTK1ZlcmlTaWduIFRpbWUgU3RhbXBp # bmcgU2VydmljZXMgU2lnbmVyIC0gRzIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ # AoGBAMS18lIVvIiGYCkWSlsvS5Frh5HzNVRYNerRNl5iTVJRNHHCe2YdicjdKsRq # CvY32Zh0kfaSrrC1dpbxqUpjRUcuawuSTksrjO5YSovUB+QaLPiCqljZzULzLcB1 # 3o2rx44dmmxMCJUe3tvvZ+FywknCnmA84eK+FqNjeGkUe60tAgMBAAGjgcQwgcEw # NAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC52ZXJpc2ln # bi5jb20wDAYDVR0TAQH/BAIwADAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3Js # LnZlcmlzaWduLmNvbS90c3MtY2EuY3JsMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMI # MA4GA1UdDwEB/wQEAwIGwDAeBgNVHREEFzAVpBMwETEPMA0GA1UEAxMGVFNBMS0y # MA0GCSqGSIb3DQEBBQUAA4IBAQBQxUvIJIDf5A0kwt4asaECoaaCLQyDFYE3CoIO # LLBaF2G12AX+iNvxkZGzVhpApuuSvjg5sHU2dDqYT+Q3upmJypVCHbC5x6CNV+D6 # 1WQEQjVOAdEzohfITaonx/LhhkwCOE2DeMb8U+Dr4AaH3aSWnl4MmOKlvr+ChcNg # 4d+tKNjHpUtk2scbW72sOQjVOCKhM4sviprrvAchP0RBCQe1ZRwkvEjTRIDroc/J # ArQUz1THFqOAXPl5Pl1yfYgXnixDospTzn099io6uE+UAKVtCoNd+V5T9BizVw9w # w/v1rZWgDhfexBaAYMkPK26GBPHr9Hgn0QXF7jRbXrlJMvIzMIIDxDCCAy2gAwIB # AgIQR78Zld+NUkZD99ttSA0xpDANBgkqhkiG9w0BAQUFADCBizELMAkGA1UEBhMC # WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUx # DzANBgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24x # HzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcgQ0EwHhcNMDMxMjA0MDAwMDAw # WhcNMTMxMjAzMjM1OTU5WjBTMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNp # Z24sIEluYy4xKzApBgNVBAMTIlZlcmlTaWduIFRpbWUgU3RhbXBpbmcgU2Vydmlj # ZXMgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpyrKkzM0grwp9 # iayHdfC0TvHfwQ+/Z2G9o2Qc2rv5yjOrhDCJWH6M22vdNp4Pv9HsePJ3pn5vPL+T # rw26aPRslMq9Ui2rSD31ttVdXxsCn/ovax6k96OaphrIAuF/TFLjDmDsQBx+uQ3e # P8e034e9X3pqMS4DmYETqEcgzjFzDVctzXg0M5USmRK53mgvqubjwoqMKsOLIYdm # vYNYV291vzyqJoddyhAVPJ+E6lTBCm7E/sVK3bkHEZcifNs+J9EeeOyfMcnx5iIZ # 28SzR0OaGl+gHpDkXvXufPF9q2IBj/VNC97QIlaolc2uiHau7roN8+RN2aD7aKCu # FDuzh8G7AgMBAAGjgdswgdgwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhho # dHRwOi8vb2NzcC52ZXJpc2lnbi5jb20wEgYDVR0TAQH/BAgwBgEB/wIBADBBBgNV # HR8EOjA4MDagNKAyhjBodHRwOi8vY3JsLnZlcmlzaWduLmNvbS9UaGF3dGVUaW1l # c3RhbXBpbmdDQS5jcmwwEwYDVR0lBAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD # AgEGMCQGA1UdEQQdMBukGTAXMRUwEwYDVQQDEwxUU0EyMDQ4LTEtNTMwDQYJKoZI # hvcNAQEFBQADgYEASmv56ljCRBwxiXmZK5a/gqwB1hxMzbCKWG7fCCmjXsjKkxPn # BFIN70cnLwA4sOTJk06a1CJiFfc/NyFPcDGA8Ys4h7Po6JcA/s9Vlk4k0qknTnqu # t2FB8yrO58nZXt27K4U+tZ212eFX/760xX71zwye8Jf+K9M7UhsbOCf3P0owggVa # MIIDQqADAgECAgoWkwfVAAAAAAATMA0GCSqGSIb3DQEBBQUAMEkxEjAQBgoJkiaJ # k/IsZAEZFgJsdjEZMBcGCgmSJomT8ixkARkWCXN5c2FkbWluczEYMBYGA1UEAxMP # c3lzYWRtaW5zLUxWLUNBMB4XDTA5MDgwNzEzMzMyOVoXDTEwMDgwNzEzMzMyOVow # VzESMBAGCgmSJomT8ixkARkWAmx2MRkwFwYKCZImiZPyLGQBGRYJc3lzYWRtaW5z # MQ4wDAYDVQQDEwVVc2VyczEWMBQGA1UEAxMNQWRtaW5pc3RyYXRvcjCBnzANBgkq # hkiG9w0BAQEFAAOBjQAwgYkCgYEAloTUoXflQDFR9ZS5sAdOT1QKQQ5IKCpaY2Vv # c9Lxlymo2VI0T3f8lBpzVm2C6ZeKtSyHs+GjbklFUDFDgT8wJLHgE5aFhFukh7nh # wJQsfNKyg10zE/mebfIZIGZ9IPFGDvMVJW+eV+skUjBn58tDFR+3IgnjkOGqbd6R # 8Dsir28CAwEAAaOCAbgwggG0MA4GA1UdDwEB/wQEAwIHgDA7BgkrBgEEAYI3FQcE # LjAsBiQrBgEEAYI3FQiGmb0x4rBigu2DJtLefoO13VFhhLz2C4T0qhkCAWQCAQIw # HQYDVR0OBBYEFFVXJ/UEPfMmoCnu5WNbREsdwlerMB8GA1UdIwQYMBaAFHrmiNrp # +Fw+BwTeEaI4Iql1oxOrMDsGA1UdHwQ0MDIwMKAuoCyGKmh0dHA6Ly9jYS5zeXNh # ZG1pbnMubHYvc3lzYWRtaW5zLUxWLUNBLmNybDB/BggrBgEFBQcBAQRzMHEwJwYI # KwYBBQUHMAGGG2h0dHA6Ly9jYS5zeXNhZG1pbnMubHYvb2NzcDBGBggrBgEFBQcw # AoY6aHR0cDovL2NhLnN5c2FkbWlucy5sdi9jYS5zeXNhZG1pbnMubHZfc3lzYWRt # aW5zLUxWLUNBLmNydDATBgNVHSUEDDAKBggrBgEFBQcDAzAbBgkrBgEEAYI3FQoE # DjAMMAoGCCsGAQUFBwMDMDUGA1UdEQQuMCygKgYKKwYBBAGCNxQCA6AcDBpBZG1p # bmlzdHJhdG9yQHN5c2FkbWlucy5sdjANBgkqhkiG9w0BAQUFAAOCAgEAiAoSViW5 # /n4EJZmLBGrFPoTOCPcxkuCeCm8aLDjvvKZZWl0ylZFrCf099NmjdsBZJjk7Gvd6 # NhiCX80QJaZvoGv/dTK9EvqlFKO46aQzIPrEVCX7FmEA5yDSvmyO/lFsa5m5oM5x # Q6otTM6ZooGNLBMYmaFkJ6N9OsgR1x9A+2f6htAH5BwdmacnvYwMTl3SNmR9rvxJ # HALAErVBWFkwOlU7FUnLQSmlKVhXKaDhrp/mm3ETloRWPVm7jkqLwOnFCys1dTBx # dIDGNHjboWFvUF4zJSJ/vsQhw0aF8bTSP0UIkh0689bKw+ae0+Z62gtVq4usOJMF # zANhgtLcNYUlsB46AIgenneeK0aZAgQ6jGXV0BTWrzMntF6jv7/cA/lhp3AG5Bg8 # hjR890YrrLk6l65zUnJlesnW45hg0wmgb5DDceaXiVJN1Gb9GhbdQfd9nHqCXQnl # hU4eTVyGGfvwaO0qGlklf/aCYKwTThrWLYTrXCbggGkZJqldj8uTAz5fwRgjZ6fV # 9JbMz6bgFdWiOpJUEd30R56i2QNVnu0+EtueTuV26NLbqis2Wi4pbS9jqO44pFMa # usPpPqsu5xoQ8Ad8Wb5JOMA/PClSf7OFXPeqyHgWHZHwMKXY5GdUbLLU2ZfifK1u # c55wnZ+kPGm5r3BUY2CVhvltZIJw6r7nTOsxggL6MIIC9gIBATBXMEkxEjAQBgoJ # kiaJk/IsZAEZFgJsdjEZMBcGCgmSJomT8ixkARkWCXN5c2FkbWluczEYMBYGA1UE # AxMPc3lzYWRtaW5zLUxWLUNBAgoWkwfVAAAAAAATMAkGBSsOAwIaBQCgeDAYBgor # BgEEAYI3AgEMMQowCKACgAChAoAAMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEE # MBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJBDEWBBRI # aMQI6o+IFvESD5OHOyiJZobZlDANBgkqhkiG9w0BAQEFAASBgEUNJ8J7HVSgl4C0 # rnoF3zJ1uUIYzcce9YUj8vBFuKTK1N4+l/7y10PX3QEqlTcAM8YgnWXkmQaoy026 # 3vfeGVpkYrozgEkZgU2BGTXuEMjm4fhwMWuS+HpAAvyLr1ABfirJYZ8sgo0GNUpy # iAhqnIVdGgE81uN0GJ943tsSBuK3oYIBfzCCAXsGCSqGSIb3DQEJBjGCAWwwggFo # AgEBMGcwUzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMSsw # KQYDVQQDEyJWZXJpU2lnbiBUaW1lIFN0YW1waW5nIFNlcnZpY2VzIENBAhA4Jdf6 # +GGvnvSQ5ya11lrVMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcN # AQcBMBwGCSqGSIb3DQEJBTEPFw0wOTA4MzAxMTIwMjRaMCMGCSqGSIb3DQEJBDEW # BBR1o2ESwizkXikVSt7e5EtS0v53izANBgkqhkiG9w0BAQEFAASBgCgnSv6YuiwU # 3jy8Kibb7rGx8SEpv90mHjqkPn5iPuLe328zVgLLT+nv5g3bJmKhgOqpIL8TS3CI # ebQ2rgxz3a7x05mKzKoef5IjiQSckwA2u/vFsZ751xmc1IIZ5TtBGXTssWy73hRh # Y/qI+2Y0UoJykULrJknNRm/GCbtbyfWe # SIG # End signature block