Powershell, WMI и сжатые файлы / папки

Мне нужно сгенерировать скрипт, который поможет мне получить список сжатых файлов / папок (не zip-файлов, а сжатых файлов Windows) на ряде серверов Windows 2003. У меня есть клиентский компьютер, подключенный к целевым серверам, и у меня есть доступ на основе роли администратора. Я думал о том, чтобы создать сценарий Powershell для решения этой проблемы с помощью WMI или чего-то еще? Но я отчасти заблудился от возможностей в мире WMI. Любые намеки / советы приветствуются.

ура

1 ответ

Решение

Я не уверен, что вы можете сделать это с 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, вы можете получить доступ к серверам через общий ресурс, например:

$sharePaths = '\\server1\C$', '\\server2\C$', '\\server3\C$'
Get-ChildItem $sharePaths  -r -force -ea 0 | 
    Where {$_.Attributes -band [IO.FileAttributes]::Compressed}

Этот подход, вероятно, будет медленным.

Другие вопросы по тегам