使用证书签名PowerShell脚本

1.创建自签名证书(如需要)

PS C:\Windows\system32> New-SelfSignedCertificate -DnsName www.mycard.com -CertStoreLocation Cert:\CurrentUser\My

    目录: Microsoft.PowerShell.Security\Certificate::CurrentUser\My

Thumbprint                                Subject
----------                                -------
313C6D95807E577BBD62D3F0A31077C911B72EB6  CN=www.mycard.com

2.获取证书

a).查找证书存储位置

PS C:\Windows\system32> Get-PSDrive

Name           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
Alias                                  Alias
C                  44.32         16.86 FileSystem    C:Cert                                   Certificate   \
PS C:\Windows\system32> dir Cert:\CurrentUser\My -OutVariable x

    目录: Microsoft.PowerShell.Security\Certificate::CurrentUser\My

Thumbprint                                Subject
----------                                -------
C744543541A7B9E5E0085F38351727765A716415  CN=domain\user
313C6D95807E577BBD62D3F0A31077C911B72EB6  CN=www.mycard.com
PS C:\Windows\system32> $x[0]

    目录: Microsoft.PowerShell.Security\Certificate::CurrentUser\My

Thumbprint                                Subject
----------                                -------
C744543541A7B9E5E0085F38351727765A716415  CN=domain\user

3.脚本签名前后

PS C:\Windows\system32> cat E:\1.ps1
Get-Variable
PS C:\Windows\system32> Set-AuthenticodeSignature -Certificate $x[0] -FilePath ‘E:\1.ps1‘

    目录: E:

SignerCertificate                         Status                                 Path
-----------------                         ------                                 ----
FBD0E44E1011C4C992CD5004D73137A3EC0E5AE4  Valid                                  1.ps1
PS C:\Windows\system32> cat E:\1.ps1
Get-Variable
# SIG # Begin signature block
# MIIHfgYJKoZIhvcNAQcCoIIHbzCCB2sCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUFo/Es9HHBQSTlqXXU6T/dWK2
# l7KgggV6MIIFdjCCBF6gAwIBAgIKE3B1nwAAAABmQDANBgkqhkiG9w0BAQUFADBA
# MRMwEQYKCZImiZPyLGQBGRYDY29tMRUwEwYKCZImiZPyLGQBGRYFY25wZGMxEjAQ
# BgNVBAMTCUNOUERDY2VydDAeFw0xNDExMjAwMzI5MzhaFw0xNTExMjAwMzI5Mzha
# MHgxEzARBgoJkiaJk/IsZAEZFgNjb20xFTATBgoJkiaJk/IsZAEZFgVjbnBkYzEV
# MBMGA1UECxMMUHJpdmF0ZUNsb3VkMQ8wDQYDVQQLEwZDb21tb24xEDAOBgNVBAsT
# B0FjY291bnQxEDAOBgNVBAMTB3NwYWRtaW4wgZ8wDQYJKoZIhvcNAQEBBQADgY0A
# MIGJAoGBAJbTBOSiC0gfzz0Nd+KfSL/1Ct2T3WNn6B/8/KKHp8moNQ5kQ/l3YTJP
# a/bnmldT+JjJb4+2xiXZPZjlsq6I1HgX3LA34/eexORtyhcqB7mFlM70jO+PIw1c
# QjB9e0gtXghWshN7f3NpfEI/9WEgZx05MoDCG2y/PiPHSnVGVmm7AgMBAAGjggK8
# MIICuDALBgNVHQ8EBAMCB4AwJQYJKwYBBAGCNxQCBBgeFgBDAG8AZABlAFMAaQBn
# AG4AaQBuAGcwHQYDVR0OBBYEFHxUArZcQ8ZogC8gukXPkqk2M0SaMB8GA1UdIwQY
# MBaAFEIyEaRnajbL+TplBvaCT4ejW5bsMIH0BgNVHR8EgewwgekwgeaggeOggeCG
# gaxsZGFwOi8vL0NOPUNOUERDY2VydCxDTj13YWFjYSxDTj1DRFAsQ049UHVibGlj
# JTIwS2V5JTIwU2VydmljZXMsQ049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixE
# Qz1jbnBkYyxEQz1jb20/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdD9iYXNlP29i
# amVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50hi9odHRwOi8vd2FhY2EuY25w
# ZGMuY29tL0NlcnRFbnJvbGwvQ05QRENjZXJ0LmNybDCCAQYGCCsGAQUFBwEBBIH5
# MIH2MIGmBggrBgEFBQcwAoaBmWxkYXA6Ly8vQ049Q05QRENjZXJ0LENOPUFJQSxD
# Tj1QdWJsaWMlMjBLZXklMjBTZXJ2aWNlcyxDTj1TZXJ2aWNlcyxDTj1Db25maWd1
# cmF0aW9uLERDPWNucGRjLERDPWNvbT9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0
# Q2xhc3M9Y2VydGlmaWNhdGlvbkF1dGhvcml0eTBLBggrBgEFBQcwAoY/aHR0cDov
# L3dhYWNhLmNucGRjLmNvbS9DZXJ0RW5yb2xsL3dhYWNhLmNucGRjLmNvbV9DTlBE
# Q2NlcnQuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMDMCwGA1UdEQQlMCOgIQYKKwYB
# BAGCNxQCA6ATDBFzcGFkbWluQGNucGRjLmNvbTANBgkqhkiG9w0BAQUFAAOCAQEA
# V6r7xoyewB2qs8aV/eZ9maOUgbn9edi/+4x5meNTc4hHRJQdEel0Ypz+9byxF23t
# OlIsQdqF0ylnsejy8xDiZl66VbWpMf+lqlMzgepZ5g2iraRIzf9OPA1mpCoexLog
# 7VmfFcLy+pNaU7Swr41Qev9bXF3DvqCh6GKYEiCnzAjwvDLiBp6jfF8ZlE7JpHQI
# kHvHb1hbxtadgcyqSofD0Gp7IIcO9MelaOUWw13gXFrHNvTW1SAKrCidlPoP/no9
# tYEOXhth+Nv5uBVBZwlTw9nAHcg+pjg+9pITfiQih4C+aes3nl58YBXDaXbMz+rv
# OQDWjRExCHV20WulypLqfzGCAW4wggFqAgEBME4wQDETMBEGCgmSJomT8ixkARkW
# A2NvbTEVMBMGCgmSJomT8ixkARkWBWNucGRjMRIwEAYDVQQDEwlDTlBEQ2NlcnQC
# ChNwdZ8AAAAAZkAwCQYFKw4DAhoFAKB4MBgGCisGAQQBgjcCAQwxCjAIoAKAAKEC
# gAAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwG
# CisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFHwOQIGZoxKLrIov7cZ1wBhrMA57
# MA0GCSqGSIb3DQEBAQUABIGAEmp+D25Uxjxuof3PzPuOagbWurKjYYnds8ThTCuj
# lswYU6DMnXyp37HLbl0tvNMYnXk71GUX/p4KC/EN9RDUWtipZUrCtydwlfPQPEAw
# KGaz0eKD0h2TAwLliTcHRM+WhjgSur2N5Or4z3EXCca8mJjesVZJj5eZfNPK97sX
# TeU=
# SIG # End signature block
时间: 2024-10-29 02:30:07

使用证书签名PowerShell脚本的相关文章

PowerShe 使用证书签名 ll脚本

1.创建自签名证书(如需要) 1 PS C:\Windows\system32> New-SelfSignedCertificate -DnsName www.mycard.com -CertStoreLocation Cert:\CurrentUser\My 2 3 目录: Microsoft.PowerShell.Security\Certificate::CurrentUser\My 4 5 Thumbprint Subject 6 ---------- ------- 7 313C6D9

PowerShell 脚本执行策略

为防止恶意脚本的执行,PowerShell 中设计了一个叫做执行策略(Execution Policy)的东西(我更倾向于把它叫做脚本执行策略).我们可以在不同的应用场景中设置不同的策略来防止恶意脚本的执行.本文主要是解释这些执行策略,因为笔者在学习的时候发现它们并不是那么清晰易懂.PowerShell 提供了 Restricted.AllSigned.RemoteSigned.Unrestricted.Bypass.Undefined 六种类型的执行策略,接下来我们一一介绍. Restrict

2. PowerShell -- 脚本执行权限

1. Powershell  脚本运行的几种权限介绍 Restricted--默认的设置, 不允许任何script运行 AllSigned--只能运行经过数字证书签名的script RemoteSigned--运行本地的script不需要数字签名,但是运行从网络上下载的script就必须要有数字签名 Unrestricted--允许所有的script运行,但是在运行前会提示是否进行操作 Bypass: --允许所有的script运行,没有任何的提示和警告,开发者多时候此策略 2.  查看当前Po

POWERSHELL脚本执行权限

Restricted——默认的设置, 不允许任何script运行 AllSigned——只能运行经过数字证书签名的script RemoteSigned——运行本地的script不需要数字签名,但是运行从网络上下载的script就必须要有数字签名 Unrestricted——允许所有的script运行 使用如下命令让PowerShell运行在无限制的环境之下: Set-ExecutionPolicy Unrestricted

powershell脚本:你的文件已经被黑客篡改.ps1

本人原创powershell脚本分享. 脚本用途:列出某目录下,所有软件签名不符的文件. 系统需求: win7 + powershell 2.0 及 以上. #nd你的文件已经被黑客篡改.ps1 ps1文档应保存为,含有bom头的unicode文档. #输入一个目录,验证此目录(含子目录)下,所有文件的签名是否被篡改. #支持 win7 + powershell 2.0及以上. Write-Warning '你输入一个目录.本脚本将验证此目录(含子目录)下,所有文件的签名是否被篡改' Write

powershell脚本自动检核DAG

经常检查DAG复制是Exchange邮箱管理员日常任务之一,以前每天上去看也挺烦的,尤其数据库比较多的情况下.下图就是"好心"的台北同事经常提醒我检查,我的天,这要是通过EMC看还不累死.还CC我领导,搞的人怪没面子的. 几条需要注意: 一.此脚本放在exchange任一台主机运行即可. 二.Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 添加Exchange管理模块 三.用Get-MailboxDatabase

云服务程序在启动的时候执行Powershell脚本

如果在云服务程序启动时候,需要执行Powershell脚本,我们需要将脚本嵌入到程序中,并且编写一个cmd来执行这个脚本,具体如下: 1.编写测试的Powershell脚本:每隔10分钟 检测dns $TimeStart = Get-Date $TimeEnd = $timeStart.addminutes(1440) $name = "cnppmedia.blob.core.chinacloudapi.cn." $result = "d:\nslookuplog.txt&q

构建自己的CA给证书签名

本文原创自 http://blog.csdn.net/voipmaker  转载注明出处. 本系列文章分为三篇,主要介绍构建自己的证书颁发服务,生成证书请求,以及通过自己构建的CA给生成的证书请求签名并最终应用到服务, 本篇讲述利用前面文章的CA服务给证书签名. 本文假设你已经看过前两篇文章,并确保如下路径: CA 私有key 在目录  /home/cg/myca/private/ CA 根证书在 /home/cg/myca/certs/ ca 配置文件在  /home/cg/myca/conf

C#调用PowerShell脚本

今天通过一个小例子,学习了C#如何调用PowerShell脚本文件的Function以及传参. private bool CallPowershell(string outputFile) { string ddcHost = "test"; RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create(); Runspace runspace = RunspaceFactory.CreateRun