Batch sprawdzający ilość wolnego miejsca na dyskach na wielu komputerach z listy

Pora na trochę „oldschool’owego” IT :). Otóż, podzielę się z Wami batchem, który wiele lat temu stworzyłem sobie aby na szybko sprawdzić ile wolnego miejsca mają komputery z listy. Mimo, iż na co dzień mam dostęp do zaawansowanych systemów monitorujących, ten skrypt bywa przydatny (jak zwykle najprostsze rozwiązania bywają najlepsze).

Przygotujmy sobie blik wsadowy (.bat), którego zawartością będzie:

FOR /F %%A IN (komputery.txt) DO (WMIC /Node:%%A LogicalDisk Where DriveType=”3″ Get SystemName,DeviceID,FileSystem,FreeSpace,Size) >> raport_miejsca.CSV

W osobnym pliku, o nazwie „komputery.txt” podajemy nazwy maszyn na liście w osobnych liniach.
Po uruchomieniu naszego skryptu pojawi się raport w pliku raport_miejsca.CSV, którego zawartość może wyglądać mniej więcej tak:
wmic diskspace report
Jak widać, Batch sprawdzający ilość wolnego miejsca na dyskach jest mega-prosty, ale przyda się każdemu adminowi.

Od dawna zabieram się, aby napisać to samo w Poweshell. Trzymajcie kciuki 🙂

Łukasz Skalikow

Obecnie Manager IT. Przez lata byłem Inżynierem systemów. Jestem entuzjastą i specem od vSphere, Windows serwer, GPO. Od zawsze byłem zwolennikiem wiersza poleceń i automatyzacji. Obecnie, ze względu na pracę, rodzinę i wyjazdy służbowe, dużo mniej udzielam się na blogu, ale mam nadzieję, że pośród kilkuset porad opublikowanych na spece.it, wiele osób znajdzie dla siebie coś przydatnego :)

Przeczytaj także...

4 komentarze

  1. marczu napisał(a):

    foreach ($komputer in Get-Content .komputery.txt){

    Get-WmiObject -class Win32_LogicalDisk -ComputerName $komputer |? {$_.DriveType -eq ‚3’} |Select DeviceID,FileSystem,FreeSpace,Size,SystemName |Export-Csv .raport_miejsca.csv -Append -NoTypeInformation -Delimiter ‚;’

    }

  2. SzwejkowskiA napisał(a):

    $gc=get-content d:item.txt

    $gc|foreach{

    $pcname=$_

    Get-WmiObject -ComputerName $_ win32_logicaldisk|select @{Name=”DeviceName”;expression={„$($pcname)”}}DeviceID,@{name=”FreeSpace”; Expression={„{0:N2}” -f ($_.freespace/1GB) }},@{Name=”SIze”;Expression={„{0:N2}” -f ($_.size /1GB)}}

    }

    Tak was nie raz czytam wiec drzuce cos od siebie – wynik w gb

Dodaj komentarz