[玩转系统] 关于证书提供商
作者:精品下载站 日期:2024-12-14 02:09:43 浏览:13 分类:玩电脑
关于证书提供商
提供商名称
证书
驱动器
Cert:
能力
应该处理
简短描述
提供对 X.509 证书存储和 PowerShell 中的证书的访问。
详细说明
此信息仅适用于在 Windows 上运行的 PowerShell。
PowerShell 证书提供程序允许您在 PowerShell 中获取、添加、更改、清除和删除证书和证书存储。
证书驱动器是一个分层命名空间,包含计算机上的证书存储和证书。
证书提供程序支持以下 cmdlet。
- Get-Location
- Set-Location
- Get-Item
- Get-ChildItem
- Invoke-Item
- Move-Item
- New-Item
- Remove-Item
- Get-ItemProperty
- Set-ItemProperty
- Clear-ItemProperty
- Get-AuthenticodeSignature
- Set-AuthenticodeSignature
该提供者公开的类型
证书驱动器公开以下类型。
- Microsoft.PowerShell.Commands.X509StoreLocation,它们是对当前用户和所有用户的证书进行分组的高级容器。每个系统都有一个
CurrentUser
和LocalMachine
(所有用户)存储位置。 - System.Security.Cryptography.X509Certificates.X509Store,是保存和管理证书的实体存储。
- System.Security.Cryptography.X509Certificates.X509Certificate2,每个都代表计算机上的一个 X.509 证书。证书通过指纹来识别。
浏览证书驱动器
证书提供程序将证书命名空间公开为 PowerShell 中的 Cert:
驱动器。此命令使用 Set-Location
命令将当前位置更改为 LocalMachine
存储位置中的Root
证书存储。使用反斜杠 (\
) 或正斜杠 (/
) 指示 Cert:
驱动器的级别。
Set-Location Cert:
您还可以使用任何其他 PowerShell 驱动器中的证书提供程序。要从其他位置引用别名,请在路径中使用 Cert:
驱动器名称。
PS Cert:\> Set-Location -Path LocalMachine\Root
要返回到文件系统驱动器,请键入驱动器名称。例如,输入:
Set-Location C:
笔记
PowerShell 使用别名让您能够以熟悉的方式使用提供程序路径。 dir
和 ls
等命令现在是 Get-ChildItem 的别名,cd
是 Set-Location 的别名,pwd
是 Get-Location 的别名。
显示证书的内容:驱动器
此命令使用 Get-ChildItem
cmdlet 显示 CurrentUser
证书存储位置中的证书存储。
如果您不在 Cert:
驱动器中,请使用绝对路径。
PS Cert:\CurrentUser\> Get-ChildItem
显示 Cert: 驱动器中的证书属性
此示例使用 Get-Item
获取证书并将其存储在变量中。该示例显示了使用 Select-Object
的新证书脚本属性(DnsNameList、EnhancedKeyUsageList、SendAsTrustedIssuer)。
$c = Get-Item cert:\LocalMachine\MyA149D0393CE8A8D4AF0B172ED667A9E3A1F44E
$c | Format-List DnsNameList, EnhancedKeyUsageList, SendAsTrustedIssuer
DnsNameList : {SERVER01.contoso.com}
EnhancedKeyUsageList : {WiFi-Machine (1.3.6.1.4.1.311.42.2.6),
Client Authentication (1.3.6.1.5.5.7.3.2)}
SendAsTrustedIssuer : False
查找所有 CodeSigning 证书
此命令使用 Get-ChildItem
cmdlet 的 CodeSigningCert 和 Recurse 参数来获取计算机上具有代码签名权限的所有证书。
Get-ChildItem -Path cert: -CodeSigningCert -Recurse
查找过期证书
此命令使用 Get-ChildItem
cmdlet 的 ExpiringInDays 参数来获取在未来 30 天内过期的证书。
Get-ChildItem -Path cert:\LocalMachine\WebHosting -ExpiringInDays 30
查找服务器 SSL 证书
此命令使用 Get-ChildItem
cmdlet 的 SSLServerAuthentication 参数来获取 My
和 WebHosting
中的所有服务器 SSL 证书> 商店。
$getChildItemSplat = @{
Path = 'cert:\LocalMachine\My', 'cert:\LocalMachine\WebHosting'
SSLServerAuthentication = $true
}
Get-ChildItem @getChildItemSplat
查找远程计算机上过期的证书
此命令使用 Invoke-Command
cmdlet 在 Srv01 和 Srv02 计算机上运行 Get-ChildItem
命令。 ExpiringInDays 参数中的值为零 (0
) 将获取 Srv01 和 Srv02 计算机上已过期的证书。
$invokeCommandSplat = @{
ComputerName = 'Srv01', 'Srv02'
ScriptBlock = {
Get-ChildItem -Path cert:\* -Recurse -ExpiringInDays 0
}
}
Invoke-Command @invokeCommandSplat
组合过滤器来查找一组特定的证书
此命令获取 LocalMachine
存储位置中具有以下属性的所有证书:
- DNS 名称中的
fabrikam
- EKU 中的
客户端身份验证
- SendAsTrustedIssuer 属性的值为
$true
- 不要在接下来的 30 天内过期。
NotAfter 属性存储证书到期日期。
[DateTime] $ValidThrough = (Get-Date) + (New-TimeSpan -Days 30)
$getChildItemSplat = @{
Path = 'cert:\*'
Recurse = $true
DnsName = "*fabrikam*"
Eku = "*Client Authentication*"
}
Get-ChildItem @getChildItemSplat |
Where-Object {$_.SendAsTrustedIssuer -and $_.NotAfter -gt $ValidThrough }
打开证书 MMC 管理单元
Invoke-Item
cmdlet 使用默认应用程序打开您指定的路径。对于证书,默认应用程序是证书 MMC 管理单元。
此命令打开证书 MMC 管理单元来管理指定的证书。
Invoke-Item cert:\CurrentUser\myB8223358119BB08840DEE50FD8AF9EA776CE66B
复制证书
证书提供商不支持复制证书。当您尝试复制证书时,您会看到此错误。
$path = "Cert:\LocalMachine\Root\E2C0F6662D3C569705B4B31FE2CBF3434094B254"
PS Cert:\LocalMachine\> Copy-Item -Path $path -Destination .\CA\
Copy-Item : Provider operation stopped because the provider doesn't support
this operation.
At line:1 char:1
+ Copy-Item -Path $path -Destination .\CA\
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotImplemented: (:) [Copy-Item],
PSNotSupportedException
+ FullyQualifiedErrorId : NotSupported,
Microsoft.PowerShell.Commands.CopyItemCommand
搬家证明
将所有 SSL 服务器身份验证证书移至 WebHosting 存储
此命令使用 Move-Item
cmdlet 将证书从 My
存储移动到 WebHosting
存储。
Move-Item
无法移动证书存储,也无法将证书移动到其他存储位置,例如将证书从 LocalMachine
移动到 CurrentUser
. Move-Item
cmdlet 可以在存储区中移动证书,但不能移动私钥。
此命令使用 Get-ChildItem
cmdlet 的 SSLServerAuthentication 参数来获取 My
证书存储中的 SSL 服务器身份验证证书。
返回的证书通过管道传输到 Move-Item
cmdlet,该 cmdlet 将证书移动到 WebHosting
存储区。
Get-ChildItem cert:\LocalMachine\My -SSLServerAuthentication |
Move-Item -Destination cert:\LocalMachine\WebHosting
删除证书和私钥
Remove-Item
cmdlet 可删除您指定的证书。 DeleteKey 动态参数删除私钥。
从 CA 存储中删除证书
此命令从 CA 证书存储中删除证书,但保持关联的私钥不变。
在 Cert:
驱动器中,Remove-Item
cmdlet 仅支持 DeleteKey、Path、WhatIf 和确认参数。所有其他参数都将被忽略。
Remove-Item cert:\LocalMachine\CADDC44652E62BF9AA1116DC41DE44AB47C87BDD0
删除在 DNS 名称中使用通配符的证书
此命令将删除 DNS 名称包含 Fabrikam 的所有证书。它使用 Get-ChildItem
cmdlet 的 DNSName 参数获取证书,并使用 Remove-Item
cmdlet 删除证书。
Get-ChildItem -Path cert:\LocalMachine -DnsName *Fabrikam* | Remove-Item
从远程计算机删除私钥
这一系列命令启用委派,然后删除远程计算机上的证书和关联的私钥。要删除远程计算机上的私钥,您必须使用委派凭据。
使用 Enable-WSManCredSSP
cmdlet 在 S1 远程计算机上的客户端上启用凭据安全服务提供程序 (CredSSP) 身份验证。 CredSSP 允许委托身份验证。
Enable-WSManCredSSP -Role Client -DelegateComputer S1
使用 Connect-WSMan
cmdlet 将 S1 计算机连接到本地计算机上的 WinRM 服务。此命令完成后,S1 计算机将出现在 PowerShell 中的本地 WSMan:
驱动器中。
Connect-WSMan -ComputerName S1 -Credential Domain01\Admin01
现在,您可以使用 WSMan:
驱动器中的 Set-Item
cmdlet 为 WinRM 服务启用 CredSSP 属性。
Set-Item -Path WSMan:\S1\Service\Auth\CredSSP -Value $true
使用 New-PSSession
cmdlet 在 S1 计算机上启动远程会话,并指定 CredSSP 身份验证。将会话保存在 $s
变量中。
$s = New-PSSession S1 -Authentication CredSSP -Credential Domain01\Admin01
最后,使用 Invoke-Command
cmdlet 在会话中的 $s
变量中运行 Remove-Item
命令。 Remove-Item
命令使用 DeleteKey 参数删除私钥以及指定的证书。
Invoke-Command -Session $s {
$removeItemSplat = @{
Path = 'cert:\LocalMachine\My\D2D38EBA60CAA1C12055A2E1C83B15AD450110C2'
DeleteKey = $true
}
Remove-Item @removeItemSplat
}
删除过期的证书
此命令使用值为 0
的 Get-ChildItem
cmdlet 的 ExpiringInDays 参数来获取 WebHosting
中的证书> 已过期的商店。
包含返回证书的变量通过管道传输到 Remove-Item
cmdlet,该命令将删除它们。该命令使用 DeleteKey 参数来删除私钥和证书。
$expired = Get-ChildItem cert:\LocalMachine\WebHosting -ExpiringInDays 0
$expired | Remove-Item -DeleteKey
创建证书
New-Item
cmdlet 不会在证书提供程序中创建新证书。使用 New-SelfSignedCertificate cmdlet 创建用于测试目的的证书。
创建证书存储
在 Cert:
驱动器中,New-Item
cmdlet 在 LocalMachine
存储位置创建证书存储。它支持名称、路径、WhatIf和确认参数。所有其他参数都将被忽略。该命令返回代表新证书存储的System.Security.Cryptography.X509Certificates.X509Store。
此命令在 LocalMachine
存储位置中创建一个名为 CustomStore
的新证书存储。
New-Item -Path cert:\LocalMachine\CustomStore
在远程计算机上创建新的证书存储
此命令在 Server01 计算机上的 LocalMachine
存储位置中创建一个名为 HostingStore
的新证书存储。
该命令使用 Invoke-Command
cmdlet 在 Server01 计算机上运行 New-Item
命令。该命令返回代表新证书存储的System.Security.Cryptography.X509Certificates.X509Store。
Invoke-Command -ComputerName Server01 -ScriptBlock {
New-Item -Path cert:\LocalMachine\CustomStore
}
为 WS-Man 创建客户端证书
此命令创建可供 WS-Management 客户端使用的 ClientCertificate 条目。新的 ClientCertificate 在 ClientCertificate 目录下显示为 ClientCertificate_1234567890
。所有参数都是强制性的。 颁发者需要是颁发者证书的指纹。
$newItemSplat = @{
Path = 'WSMan:\localhost\ClientCertificate'
Credential = Get-Credential
Issuer = '1b3fd224d66c6413fe20d21e38b304226d192dfe'
URI = 'wmicimv2/*'
}
New-Item @newItemSplat
删除证书存储
从远程计算机删除证书存储
此命令使用 Invoke-Command
cmdlet 在 S1 和 S2 计算机上运行 Remove-Item
命令。 Remove-Item
命令包含 Recurse 参数,该参数会在删除存储之前删除存储中的证书。
Invoke-Command -ComputerName S1, S2 -ScriptBlock {
Remove-Item -Path cert:\LocalMachine\TestStore -Recurse
}
动态参数
动态参数是由 PowerShell 提供程序添加的 cmdlet 参数,仅当在启用提供程序的驱动器中使用 cmdlet 时才可用。这些参数在证书提供者的所有子目录中均有效,但仅对证书有效。
笔记
针对 EnhancedKeyUsageList 属性执行筛选的参数也会返回具有空 EnhancedKeyUsageList 属性值的项目。具有空 EnhancedKeyUsageList 的证书可用于所有目的。
PowerShell 7.1 中重新引入了以下证书提供程序参数。
- DNS名称
- 文档加密证书
- EKU
- 到期日
- SSL服务器身份验证
CodeSigningCert
支持的 Cmdlet
- Get-Item
- Get-ChildItem
此参数获取其 EnhancedKeyUsageList 属性值中具有代码签名
的证书。
DeleteKey
支持的 Cmdlet
- Remove-Item
该参数在删除证书时会删除关联的私钥。
这很重要
要删除与远程计算机上的 Cert:\CurrentUser
存储中的用户证书关联的私钥,您必须使用委派凭据。 Invoke-Command
cmdlet 支持使用 CredSSP 参数进行凭据委派。在将 Remove-Item
与 Invoke-Command
和凭据委托结合使用之前,您应该考虑任何安全风险。
此参数在 PowerShell 7.1 中重新引入
DnsName
支持的 Cmdlet
- Get-ChildItem
此参数获取在证书的 DNSNameList 属性中具有指定域名或名称模式的证书。此参数的值可以是 Unicode
或 ASCII
。 Punycode 值转换为 Unicode。允许使用通配符 (*
)。
PowerShell 7.1 中重新引入了此参数
DocumentEncryptionCert
支持的 Cmdlet
- Get-Item
- Get-ChildItem
此参数获取其EnhancedKeyUsageList 属性值中具有文档加密
的证书。
EKU
支持的 Cmdlet
- Get-ChildItem
此参数获取在证书的 EnhancedKeyUsageList 属性中具有指定文本或文本模式的证书。允许使用通配符 (*
)。 EnhancedKeyUsageList 属性包含 EKU 的友好名称和 OID 字段。
此参数在 PowerShell 7.1 中重新引入
到期天数
支持的 Cmdlet
- Get-ChildItem
此参数获取在指定天数或之前到期的证书。值零 (0) 获取已过期的证书。
此参数在 PowerShell 7.1 中重新引入
项目类型
该参数用于指定New-Item
创建的项目类型。 New-Item
cmdlet 仅支持值Store
。 New-Item
cmdlet 无法创建新证书。
支持的 Cmdlet
- New-Item
SSLServerAuthentication
支持的 Cmdlet
- Get-ChildItem
仅获取 SSL Web 托管的服务器证书。此参数获取其EnhancedKeyUsageList 属性值中具有服务器身份验证
的证书。
PowerShell 7.1 中重新引入了此参数
脚本属性
新的脚本属性已添加到表示证书的 x509Certificate2 对象中,以便于搜索和管理证书。
- DnsNameList:为了填充DnsNameList 属性,证书提供程序从SubjectAlternativeName (SAN) 扩展中的DNSName 条目复制内容。如果 SAN 扩展为空,则该属性将使用证书的“主题”字段中的内容填充。
- EnhancedKeyUsageList:为了填充 EnhancedKeyUsageList 属性,证书提供程序复制证书中的EnhancedKeyUsage (EKU) 字段的 OID 属性,并为其创建一个友好名称。
- SendAsTrustedIssuer:为了填充 SendAsTrustedIssuer 属性,证书提供程序从证书复制 SendAsTrustedIssuer 属性。有关详细信息,请参阅管理客户端身份验证的可信颁发者。
这些新功能使您可以根据 DNS 名称和到期日期搜索证书,并通过其增强型密钥用法 (EKU) 属性的值区分客户端和服务器身份验证证书。
使用管道
提供程序 cmdlet 接受管道输入。您可以使用管道通过将提供程序数据从一个 cmdlet 发送到另一提供程序 cmdlet 来简化任务。要详细了解如何将管道与提供程序 cmdlet 一起使用,请参阅本文中提供的 cmdlet 参考。
寻求帮助
从 PowerShell 3.0 开始,您可以获得提供程序 cmdlet 的自定义帮助主题,这些主题解释了这些 cmdlet 在文件系统驱动器中的行为方式。
要获取为文件系统驱动器自定义的帮助主题,请在文件系统驱动器中运行 Get-Help 命令或使用 Get-Help
的 -Path
参数来获取指定文件系统驱动器。
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path cert:
参见
- about_Providers
- about_签名
- Get-AuthenticodeSignature
- Set-AuthenticodeSignature
- Get-PfxCertificate
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag