Я не уверен, что вы можете сделать это с WMI, тогда я опять не гуру WMI. Если вы можете использовать PowerShell 2.0, это довольно просто, используя новую функцию удаленного взаимодействия, например
$computers = 'server1', 'server2', 'server3'
$compressed = Invoke-Command $computers {Get-ChildItem C:\ -r -force -ea 0 |
Where {$_.Attributes -band [IO.FileAttributes]::Compressed}}
Обратите внимание, что каждый файл и объект dir, хранящиеся в $ compress, будут иметь дополнительное свойство PSComputerName, которое определяет, с какого компьютера пришел десериализованный объект.
В качестве альтернативы, если у вас нет PowerShell 2.0, вы можете получить доступ к серверам через общий ресурс, например ::10000
$sharePaths = '\\server1\C$', '\\server2\C$', '\\server3\C$'
Get-ChildItem $sharePaths -r -force -ea 0 |
Where {$_.Attributes -band [IO.FileAttributes]::Compressed}
Этот подход, вероятно, будет медленным.