powershell - 为什么 Get-CimInstance CIM_LogicalDisk 返回两种类型?
问题描述
为什么Get-CimInstance CIM_LogicalDisk
同时返回 aWin32_LogicalDisk
和 a Win32_MappedLogicalDisk
?
有一个 Win32_MappedLogical 磁盘 CIM 类,但没有 Cim_MappedLogicalDisk` 类。应该有吗?
在 pwsh 6 中似乎也没有。Linux 上的 pwsh 6 中没有 CIM cmdlet。CIM 是 Microsoft 独有的吗?我以为不是。
C:>$Provider = Get-CimInstance CIM_LogicalDisk | Where-Object { $_.Name -eq 'W:' }
C:>$Provider.Count
2
解决方案
CIM_LogicalDisk
返回本地和映射的逻辑磁盘对象。您可以像这样匹配Win32_LogicalDisk
orCIM_LogicalDisk
类型:
$Provider = Get-CimInstance CIM_LogicalDisk | Where-Object {
$_.Name -eq 'W:' -And $_.CimClass.CimClassName -match '^(CIM|Win32)_LogicalDisk$'
}
这应该从 中省略Win32_MappedLogicalDisk
对象$Provider
。
至于您关于CIM
在 Linux 中的 Posh 上没有 cmdlet 的问题,4 月的这个 Powershell Github 问题指出,“没有将 CIM cmdlet 移植到非 Windows 的计划。”