CimCmdlets 模块中的 cmdlet 是对常规系统管理任务最重要的 cmdlet 。 所有关键子系统设置都通过 WMI 公开。 此外,WMI 将数据视为一个或多个项的集合中的对象。 由于 Windows PowerShell 也可以使用对象,且具有允许你以相同方式处理单个和多个对象的管道,因此通过泛型 WMI 访问可以非常轻易地执行某些高级任务。

我们将首先处理用于收集有关本地计算机上桌面信息的命令。

Get-CimInstance -ClassName Win32_Desktop

这将返回所有桌面的信息,无论它们是否正在使用中。

注:WMI 类返回的某些信息可能非常详细,且通常包括有关 WMI 类的元数据。

因为这些元数据属性大多具有以 Cim 开头的名称,因此可以使用 Select-Object 筛选属性 。指定值为Cim*的 -ExcludeProperty 参数 。 例如:

Get-CimInstance -ClassName Win32_Desktop | Select-Object -ExcludeProperty "CIM*"

若要筛选掉元数据,请使用管道运算符 (|),将 Get-CimInstance 命令的结果发送到 Select-Object -ExcludeProperty “CIM*”。

执行上面示例代码,得到以下结果:

PS C:\Users\maxsu> Get-CimInstance -ClassName Win32_Desktop | Select-Object -ExcludeProperty "CIM*"

SettingID Name                ScreenSaverActive ScreenSaverSecure ScreenSaverTimeout
--------- ----                ----------------- ----------------- ------------------
          NT AUTHORITY\SYSTEM False
          MAXSU\maxsu         False             False             6600
          .DEFAULT            False