Jak monitorować przestrzeń dyskową?

jak monitorować przestrze dyskową

Get-PSDrive

PS C:\Users\Admin> Get-PSDrive

Name     Used (GB) Free (GB) Provider    Root               CurrentLocation
----     --------- --------- --------    ----               ---------------
Alias                        Alias
C           434.47     41.58 FileSystem  C:\                    Users\Admin
Cert                         Certificate \
Env                          Environment
Function                     Function
HKCU                         Registry    HKEY_CURRENT_USER
HKLM                         Registry    HKEY_LOCAL_MACHINE
Variable                     Variable
WSMan                        WSMan
PS C:\Users\Admin> Get-PSdrive -PSProvider FileSystem

Name Used (GB) Free (GB) Provider   Root CurrentLocation
---- --------- --------- --------   ---- ---------------
C       434.33     41.73 FileSystem C:\      Users\Admin
PS C:\Users\Admin> Get-PSdrive -PSProvider filesystem | Select-Object `
Name, 
@{Name="Used (GB)";Expression={"{0:N2}" -f ($_.used/1gb)}}, 
@{Name="Free (GB)";Expression={"{0:N2}" -f($_.free/1gb)}},
@{Name="Free (%)";Expression={"{0:P0}" -f(($_.free) / ($_.Used+$_.Free))}}

Name Used (GB) Free (GB) Free (%)
---- --------- --------- --------
C    434.32    41.73     9%  

Jak to działa?

⚠️ Uwaga

Get-WmiObject (Windows PowerShell)

PS C:\Users\Admin> Get-WmiObject -Class Win32_LogicalDisk


DeviceID     : C:
DriveType    : 3
ProviderName :
FreeSpace    : 46233636864
Size         : 511160872960
VolumeName   :

DeviceID     : D:
DriveType    : 2
ProviderName :
FreeSpace    : 9398272
Size         : 10534912
VolumeName   : GARMIN
PS C:\Users\Admin> Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType = 3" | Format-Table

DeviceID DriveType ProviderName   FreeSpace         Size VolumeName
-------- --------- ------------   ---------         ---- ----------
C:               3              45844889600 511160872960

Warto wiedzieć

W przypadku klasy Win32_LogicalDisk, właściwość DriveType określa typ napędu logicznego (dysku), który reprezentuje dany obiekt. Jest to właściwość numeryczna (typu uint32), a każda wartość odpowiada określonemu typowi urządzenia.

Wartości DriveType (monitorowanie przetrzeni dyskowej)
PS C:\Users\Admin> Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType = 3" | Select-Object `
@{Name="Name";Expression={$_.deviceID}}, 
@{Name="Size (GB)";Expression={"{0:N2}" -f ($_.size/1gb)}}, 
@{Name="Free (GB)";Expression={"{0:N2}" -f ($_.freespace/1gb)}}, 
@{Name="Free (%)";Expression={"{0:P0}" -f(($_.freespace/1gb) / ($_.size/1gb))}}

Name Size (GB)  Free (GB)  Free (%)
---- ---------- ---------- ---------
C:   476.06     42.42      9%

Jak to działa?

Get-CmiInstance

PS C:\Users\Admin> Get-CimInstance -Class Win32_LogicalDisk

DeviceID DriveType ProviderName VolumeName Size         FreeSpace
-------- --------- ------------ ---------- ----         ---------
C:       3                                 511160872960 45549408256
PS C:\Users\Admin> Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType = 3" |
 Select-Object `
 @{Name = "Name"; Expression = { $_.DeviceID } },
 @{Name = "Size (GB)"; Expression = { "{0:N2}" -f ($_.Size / 1GB) } },
 @{Name = "Free (GB)"; Expression = { "{0:N2}" -f ($_.FreeSpace / 1GB) } },
 @{Name = "Free (%)"; Expression = { "{0,6:P0}" -f (($_.FreeSpace / 1GB) / ($_.Size / 1GB))}}

Name Size (GB)   Free (GB)  Free (%)
---- ----------- ---------- ---------
C:   476.06      42.42      9%

Jak to działa?

Zdalne monitorowanie przestrzeni dyskowej

PS C:\Users\Admin> Invoke-Command -ComputerName Komp1, Komp2, Komp3 {
Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType = 3" | Select-Object ` 
@{Name="Dysk";Expression={$_.deviceID}}, 
@{Name="Rozmiar(GB)";Expression={"{0:N2}" -f ($_.size/1gb)}}, 
@{Name="Wolne (GB)";Expression={"{0:N2}" -f ($_.freespace/1gb)}}, 
@{Name="Wolne (%)";Expression={"{0,6:P0}" -f(($_.freespace/1gb) / ($_.size/1gb))}}} | ft

ComputerName Disk Rozmiar(GB) Wolne (GB) Wolne (%)
------------- ---- ----------- ------------ ----------
Komp1         C:   237,00      120,50       51%
Komp2         C:   119,00      30,75        26%
Komp2         E:   465,00      200,00       43%
Komp3         C:   512,00      400,00       78%
PS C:\Users\Admin> Get-CimInstance -ComputerName Komp1, Komp2, Komp3 `
-Class Win32_LogicalDisk -Filter "DriveType = 3" | Select-Object `
    @{Name = "Dysk"; Expression = { $_.DeviceID } },
    @{Name = "Rozmiar(GB)"; Expression = { "{0:N2}" -f ($_.Size / 1GB) } },
    @{Name = "Wolne (GB)"; Expression = { "{0:N2}" -f ($_.FreeSpace / 1GB) } },
    @{Name = "Wolne (%)"; Expression = { "{0,6:P0}" -f (($_.FreeSpace / 1GB) / ($_.Size / 1GB)) } } | ft

Dysk Rozmiar(GB) Wolne (GB) Wolne (%)
---- ----------- ------------ ----------
C:   237,00      120,50       51%
C:   119,00      30,75        26%
E:   465,00      200,00       43%
C:   512,00      400,00       78%

Dla ambitnych

Zobacz też:

https://techcommunity.microsoft.com/t5/ask-the-performance-team/windows-performance-monitor-overview/ba-p/375481

https://docs.microsoft.com/en-us/windows/win32/wmisdk/about-wmi

https://docs.microsoft.com/en-us/windows/win32/wmisdk/common-information-model

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-wmiobject?view=powershell-5.1

https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-logicaldisk


To wszystko na dziś!

Jeśli masz ciekawe spostrzeżenia lub doświadczenia w tym temacie – koniecznie podziel się nimi w komentarzach.
A jeśli moje materiały są dla Ciebie pomocne, możesz postawić mi wirtualną kawę.

Dzięki za wsparcie!

Postaw mi kawę na buycoffee.to

Adam Pietrzak

Trener IT | Autor szkoleń | Entuzjasta PowerShella

Administrator systemów i sieci wsparcia działań wojskowych z ponad 10-letnim doświadczeniem. Praktyk w dziedzinie bezpieczeństwa systemu Windows, automatyzacji zadań (PowerShell) oraz rozwiązań chmurowych. Trener i twórca materiałów edukacyjnych (szkolenia, warsztaty, artykuły, podręczniki). Pasjonat dzielenia się wiedzą i wspierania początkujących administratorów IT. Prywatnie – amator aktywnego wypoczynku i rodzinnych podróży.


PowerShell - 10 sposobów na optymalizację codziennej pracy
Podziel się

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *