Powershell 4 Get-ChildItem 无法识别参数 DnsName,Cert:\LocalMachine\My 工作正常

Powershell 4 Get-ChildItem doesn't recognize parameter DnsName, Cert:\LocalMachine\My works fine

我做错了什么?所有网络都说“要在证书提供程序中查找具有此 dns 名称的证书,请使用命令 Get-ChildItem -Path Cert:\LocalMachine\My -DnsName "Will we ever know?" 瞧瞧,它实际上在我的大多数机器上都有效。另外值得注意的是,Get-ChildItem -Path Cert:\LocalMachine\My 很高兴returns 证书,特别是过滤器有问题。

see: https://technet.microsoft.com/en-us/library/hh847761.aspx

但是对于我环境中的某些机器子类(我有很多机器要管理,因此通过 powershell 实现自动化),我得到这个:

Get-ChildItem : A parameter cannot be found that matches parameter name 'DnsName'.
At line:1 char:43
+ Get-ChildItem -Path Cert:\LocalMachine\My -DnsName "what does the fox say" ...
+                                          ~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Get-ChildItem], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

请注意,我已将某些方面匿名化,因此此查询 "as written" 将不起作用,因为内部细节无关紧要。为什么我在这个查询中得到 NamedParameterNotFound

备注:

检查 $PSVersionTable.PSVersion:PowerShell 3.0 中引入了选项 -DnsName

检查您是否使用 Get-PSProvider

映射驱动器 Get-PSDrive -Name 'Cert' 和提供程序“Cerificate

使用

强制映射另一个证书驱动器

New-PSDrive -PSProvider Certificate -Name 'Cert2' -Root '\'

我记得我从来没有用有效的方法回答过这个问题。显然我们很可能安装了更新。我在删除这个问题或只是说我们安装了我们需要的最新工具之间左右为难,因为这是针对 Server 2008 的。

如果您是因为 2008 版遇到此问题而发现此问题,请在下方发表评论,我会尽力帮助您,以便我们妥善解决此问题!