Jak sprawdzić ilość miejsca na dysku za pomocą programu PowerShell



Czasami kontrolowanie wolnego miejsca na dysku bywa uciążliwe, zwłaszcza gdy zarządzasz wieloma systemami lub po prostu chcesz szybko sprawdzić, ile jeszcze zostało, bez konieczności ciągłego otwierania Eksploratora plików. PowerShell jest w tym zaskakująco przydatny i nie musisz być ekspertem od skryptów, aby uzyskać przydatne informacje. Zasadniczo pozwala on zobaczyć nie tylko dyski lokalne, ale także maszyny zdalne, co jest całkiem przydatne, jeśli rozwiązujesz problemy lub monitorujesz serwery. Oczywiście, aby uzyskać wartościowe dane, musisz poprawnie uruchomić te polecenia i czasami zmodyfikować kilka ustawień, aby upewnić się, że wszystko działa płynnie.

Jak sprawdzić ilość miejsca na dysku za pomocą programu PowerShell — podstawowy sposób

Uzyskiwanie informacji o wszystkich dyskach

Pierwszym krokiem jest zrozumienie działania polecenia Get-PSDrive. Wyświetla ono wszystkie dyski rozpoznawane przez program PowerShell, w tym dyski sieciowe i dostawców, wykraczające poza system plików. Aby skupić się tylko na dyskach pamięci masowej, należy je przefiltrować. Zazwyczaj wyświetlane są dyski, które zajmują przestrzeń dyskową, takie jak C:, D: lub udziały sieciowe z pamięcią masową. Typowe polecenie to:

Get-PSDrive | Where-Object { $_. Free -gt 0 }

Pobierane są wszystkie dyski, na których jest wolne miejsce, i odfiltrowywane są wszystkie dyski, które wskazują zero lub brak wolnego miejsca, co może dotyczyć dysków systemowych lub specjalnych.

Aby jednak wszystko było jaśniejsze, zwłaszcza jeśli chcesz mieć dostęp tylko do dysków lokalnych opartych na systemie plików, możesz określić:

Get-PSDrive -PSProvider FileSystem | Select-Object Name, Free, Used, Provider

W ten sposób wyświetlane są tylko dyski lokalne, co sprawia, że ​​przestrzeń dyskowa jest bardziej uporządkowana i bardziej użyteczna, gdy nadzorujesz pamięć masową dla nowicjuszy lub do szybkich kontroli.

Monitorowanie systemów zdalnych — dlaczego nie?

Jeśli zarządzasz siecią serwerów lub zdalnymi komputerami, PowerShell również sobie z tym poradzi. Wystarczy tylko uzyskać uprawnienia i włączyć obsługę zdalną. Polecenie wygląda następująco:

Invoke-Command -ComputerName <ComputerName> -ScriptBlock {Get-PSDrive -PSProvider FileSystem | Select-Object Name, Free, Used}

Zastąp <ComputerName> nazwą lub adresem IP komputera docelowego. Na przykład, jeśli chcesz sprawdzić serwer o nazwie „Server01”, będzie to wyglądać tak:

Invoke-Command -ComputerName Server01 -ScriptBlock {Get-PSDrive -PSProvider FileSystem | Select-Object Name, Free, Used}

Spowoduje to wyrzucenie wolnego i zajętego miejsca na każdej partycji systemu plików. Najtrudniejszą częścią jest upewnienie się, że zdalne zarządzanie jest włączone i że konto użytkownika ma odpowiednie uprawnienia. Czasami, na zablokowanych serwerach, zdalne zarządzanie nie działa od razu i wymaga włączenia za pomocą polecenia Enable-PSRemoting w systemie zdalnym, co jest kolejnym problemem.

W jednej konfiguracji to polecenie działało od razu, ale w innej nie działało, dopóki nie ustawiono odpowiednich uprawnień lub nie włączono zdalnego dostępu. Nie wiem, dlaczego tak się dzieje, ale to częsty problem.

Automatyzacja i otrzymywanie alertów — odrobina magii skryptów

Jeśli ktoś lubi eksperymentować, może to scalić w skrypt, który będzie działał zgodnie z harmonogramem (np.za pomocą Harmonogramu zadań), automatycznie sprawdzając miejsce na dysku, a nawet wysyłając powiadomienia e-mail, jeśli ilość wolnego miejsca spadnie poniżej, powiedzmy, 10%.To idealne rozwiązanie dla administratorów, którzy chcą stale monitorować pracę systemu bez konieczności ciągłego nadzoru.

Na przykład prosty skrypt może wyglądać tak:

if ((Get-PSDrive -PSProvider FileSystem | Where-Object { $_. Free -lt 10GB })) { Send-MailMessage -To "[email protected]" -From "[email protected]" -Subject "Low Disk Space Alert" -Body "One of your drives is running low on space." } 

Ta konfiguracja wymaga nieco więcej pracy z ustawieniami SMTP, ale koncepcja jest prosta: sprawdź dyski i jeśli okaże się, że brakuje miejsca, automatycznie powiadom kogoś.

Oczywiście, testowanie tych skryptów i poleceń we własnej konfiguracji jest kluczowe, ponieważ różne środowiska mają różne specyfiki. Czasami PowerShell po prostu odmawia połączenia bez dodatkowych uprawnień lub reguł zapory. W niektórych wersjach systemu Windows zdalne zarządzanie musi być jawnie włączone.

Oczywiście, Windows musi to utrudniać bardziej, niż powinien. Ale po skonfigurowaniu jest całkiem wydajny do szybkich kontroli i bieżącego monitorowania.

Streszczenie

  • Użyj Get-PSDrive, aby wyświetlić listę dysków i sprawdzić ilość wolnego miejsca.
  • Filtruj za pomocą Where-Object, aby wyświetlić tylko dyski z dostępną pamięcią masową.
  • Użyj polecenia Invoke-Command do zdalnego sprawdzania, upewniając się, że zdalne sprawdzanie jest włączone i uprawnienia są prawidłowe.
  • Twórz skrypty, aby zautomatyzować alerty lub regularne kontrole — ponieważ ręczne kontrole szybko się nudzą.

Podsumowanie

Podsumowując, PowerShell to zaskakująco przydatne narzędzie do monitorowania przestrzeni dyskowej, zarówno w systemach lokalnych, jak i zdalnych. Nie zawsze jest to proste, ale po drobnych modyfikacjach może oszczędzić wielu problemów i uniknąć niespodziewanych awarii. Pamiętaj tylko, aby najpierw przetestować wszystko na komputerze, który nie jest krytyczny. Miejmy nadzieję, że dzięki temu ktoś będzie mógł kontrolować przestrzeń dyskową bez ciągłego otwierania Eksploratora.



Czy ten artykuł był pomocny?