Get-WmiObject -query什么都不返回/ null

时间:2013-12-12 11:25:33

标签: powershell

我在powershell中运行它

PS C:\>Get-WmiObject -query "select * from  Win32_OptionalFeature where name = 'RemoteServerAdministrationTools-Roles-AD-Powershell'"

在我的Windows 7机器上,我得到了正确的输出

__GENUS          : 2
__CLASS          : Win32_OptionalFeature
__SUPERCLASS     : CIM_LogicalElement
__DYNASTY        : CIM_ManagedSystemElement
__RELPATH        : Win32_OptionalFeature.Name="RemoteServerAdministrationTools-Roles-AD-Powershell"
__PROPERTY_COUNT : 6
__DERIVATION     : {CIM_LogicalElement, CIM_ManagedSystemElement}
__SERVER         : TTL001343
__NAMESPACE      : root\cimv2
__PATH           : \\TTL001343\root\cimv2:Win32_OptionalFeature.Name="RemoteServerAdministrationTools-Roles-AD-Powershell"
Caption          : Active Directory Module for Windows PowerShell
Description      :
InstallDate      :
InstallState     : 2
Name             : RemoteServerAdministrationTools-Roles-AD-Powershell
Status           :

但是当我在虚拟环境中的Windows 2008 Server框上运行相同的命令时,我会被清空。知道为什么吗?

注意:在两台机器上,我都在管理模式下运行PowerShell。

2 个答案:

答案 0 :(得分:3)

我会跑这个:

gwmi Win32_OptionalFeature | sort-object -Property Name | select-object Name

并查看相关功能是否存在略有不同的名称。

正如评论中所指出的那样,RSAT可能根本没有启用,这会影响你所看到的

答案 1 :(得分:1)

疯了一天之后。我发现我应该在Windows 2008 Server上使用此命令。

PS C:\>import-module servermanager
PS C:\>$feature=get-windowsfeature RSAT-AD-PowerShell

现在我可以像这样使用它

PS C:\> $feature.Installed
True

有用的链接:

Windows 2008 http://technet.microsoft.com/en-us/library/ee662309.aspx

Windows 2012 http://technet.microsoft.com/library/jj205467(v=wps.620).aspx