Powershell 4 Get-ChildItem不识别参数DnsName,Cert:\ LocalMachine \我的工作正常

时间:2015-01-27 23:14:47

标签: powershell named-parameters get-childitem

我做错了什么?所有网站都说“要查看证书提供商以查找具有此dns名称的证书,请使用命令Get-ChildItem -Path Cert:\LocalMachine\My -DnsName "Will we ever know?"并且看,它实际上在我的大多数机器上工作。另外值得注意的是,Get-ChildItem -Path Cert:\LocalMachine\My愉快地返回证书,它特别是故障过滤器。

  

请参阅: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

请注意,我已对某些方面进行了匿名处理,因此此“查询”将无效,因为内部详细信息无关紧要。为什么我在此查询中获得NamedParameterNotFound

注意:

  • Server 2008 R2
  • 安装.NET 4.5.1(今天之前)
  • Powershell v4 已安装(今天)

2 个答案:

答案 0 :(得分:1)

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

使用Get-PSDrive -Name 'Cert'

检查您是否有驱动器映射Get-PSProvider和提供商“ Cerificate

强制使用

映射另一个证书驱动器

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

答案 1 :(得分:0)

我提醒说,我从来没有回答过这个问题。显然我们很可能安装了更新。我在删除这个问题或者说我们安装了我们需要的最新工具之间徘徊,因为这是针对Server 2008的。

如果您因为2008年遇到此问题而发现此问题,请在下面发表评论,我会尽力帮助您,以便我们能够正确解决此问题!