在 PowerShell 中使用证书

已完成

如果在客户端或服务器计算机上查看过或管理过安全证书,则可能使用过 Microsoft 管理控制台 (MMC) 的“证书”管理单元。 使用“证书”管理单元可以浏览本地或远程计算机上的证书存储。 利用 Windows PowerShell 证书提供程序还能查看和管理安全证书。

证书提供程序创建一个名为 Cert 的 PowerShell 驱动器。Cert 驱动器始终有至少两个高级存储位置,用于为用户和本地计算机的证书分组。 两个位置是 CurrentUser 和 LocalMachine。 特定于用户或计算机的证书位于 My 子文件夹中,按表示法表示为 Cert:\CurrentUser\My。

证书提供程序支持谓词 Get、Set、Move、New、Remove 和 Invoke 与名词 Item和ChildItem 的组合。 (请注意,不支持名词 ItemProperty。)还支持所有 *-Location 命令。

Invoke-Item cmdlet 与证书提供程序结合使用会打开 MMC,并自动加载“证书”管理单元。

Get-ChildItem 命令具有证书提供程序专用的各种动态参数。 这些参数包括:

  • -CodeSigningCert。 获取可用于代码签名的证书。
  • -DocumentEncryptionCert。 获取用于文档加密的证书。
  • -DnsName。 获取在证书的 DNSNameList 属性中具有域名的证书。 此参数接受通配符。
  • -EKU。 获取在 EnhancedKeyUsageList 属性中具有指定文本的证书。 此参数支持通配符。
  • -ExpiringInDays。 获取将在指定天数内过期的证书。
  • -SSLServerAuthentication。 仅获取安全套接字层 (SSL) 服务器证书。

pki 模块中还有许多证书管理 cmdlet,不需要使用 Cert 驱动器。 例如,若要为服务器 webapp.contoso.com 创建自签名证书,请使用以下代码:

New-SelfSignedCertificate -DnsName "webapp.contoso.com" -CertStoreLocation "Cert:\LocalMachine\My"

注意

如要获取 pki 模块中证书管理 cmdlet 的列表,请运行 Get-Command -Module pki。