Powershell — Подсчет свободного места на дисках

Административные скрипты MS SQL > Powershell — Подсчет свободного места на дисках
18.08.2016 14:07:50


Наиболее часто встречающиеся слова в статье:

[Expression=] [Win32_LogicalDisk] [hostlist] [Get-WMIObject] [—filter] ["DriveType=3"] [—computer] [Get-Content] [SystemName] [DeviceID]


Статья:

Получить данные о свободном месте на нескольких компьютерах довольно легко, в WMI есть класс Win32_LogicalDisk и одним из его атрибутов является freespace.

Powershell — наше все…

Им то мы и воспользуемся. Нужно немного времени и терпения.

Итак.
1. готовим файл hostlist.txt вот такого содержания

host1
host2
host3

2. Создаем powershell-скрипт

Get-WMIObject Win32_LogicalDisk filter "DriveType=3" computer (Get-Content hostlist.txt) |Select SystemName,DeviceID,@{Name="size(GB)";Expression={"{0:N1}" -f($_.size/1gb)}},@{Name="freespace(GB)";Expression={"{0:N1}" -f($_.freespace/1gb)}} | ft

На выходе получаем табличку в которой будет указано имя хоста, буква диска, размер и свободное место.

Если результат необходимо отправить в файл слегка меняем скрипт.

Get-WMIObject Win32_LogicalDisk filter "DriveType=3" computer (Get-Content hostlist.txt) |Select SystemName,DeviceID,@{Name="size(GB)";Expression={"{0:N1}" -f($_.size/1gb)}},@{Name="freespace(GB)";Expression={"{0:N1}" -f($_.freespace/1gb)}} | ft |Out-File result.txt