Så här hittar du diskkapacitet och ledigt utrymme för fjärrdatorer

Att hitta skivkapacitet och ledigt utrymme på en lokal dator är lätt men inte så lätt från en fjärrdator, speciellt genom ett GUI-gränssnitt. Det är mycket lättare att använda kraften i PowerShell och här är hur du kan göra det.

Get-PSDrive är en inbyggd PowerShell cmdlet som listar alla lagringsenheter på ditt lokala system.

Du kan begränsa dig till att bara lista filsystem genom att leda ut resultatet till a Var klausul.

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

Eftersom cmdlet inte har a -Datornamn byt till åtkomst till fjärrdatorer, vi behöver Invoke-kommando att köra cmdlet på en fjärrdator.

Invoke-Command -ComputerName remote_computer {Get-PSDrive | Var {$ _. Free -gt 0}}

Det fungerar ganska bra bara när du har WinRM och PSRemoting aktiverad på fjärrdatorn. Och det är därför jag gillar Get-WmiObject metod ännu bättre.

Get-WmiObject Win32_LogicalDisk -ComputerName remote_computer -Filter DriveType = 3 | Välj-Objekt DeviceID, FreeSpace, Size

För att lista storlek i GB-format,

Get-WmiObject Win32_LogicalDisk -ComputerName remote_computer -Filter DriveType = 3 | Välj-Objekt DeviceID, @ {'Name' = 'Storlek (GB)'; 'Expression' = {[math] :: avkorta ($ _. Storlek / 1GB)}}, @ {'Name' = 'Freespace (GB)'; "Expression" = {[math] :: truncate ($ _. Freespace / 1GB)}}

Vad sägs om att visa resultatet med tusentals separatorer?

Get-WmiObject Win32_LogicalDisk -ComputerName remote_computer -Filter DriveType = 3 | Välj-Objekt DeviceID, @ {'Name' = 'Storlek (GB)'; 'Expression' = {[sträng] :: Format ('{0: N0}', [matte] :: truncate ($ _. Storlek / 1GB))}}, @ {'Name' = 'Freespace (GB)' ; 'Expression' = {[sträng] :: Format ('{0: N0}', [matte] :: truncate ($ _. Freespace / 1GB))}}

Du kan komma åt flera fjärrdatorer från en körning genom att sätta dem alla efter -Datornamn byta, åtskilda av ett komma.

Get-WmiObject Win32_LogicalDisk -ComputerName computer1, computer2, computer3 -Filter DriveType = 3 | Välj-Objekt DeviceID, @ {'Name' = 'Storlek (GB)'; 'Expression' = {[sträng] :: Format ('{0: N0}', [matte] :: truncate ($ _. Storlek / 1GB))}}, @ {'Name' = 'Freespace (GB)' ; 'Expression' = {[sträng] :: Format ('{0: N0}', [matte] :: truncate ($ _. Freespace / 1GB))}}

Också här är det manus som jag sätter ihop som har en bättre formaterad utgång.

$ servers = @ ("computer1", "computer2", "computer3") Foreach ($ server i $ -servrar) {$ disks = Get-WmiObject Win32_LogicalDisk -ComputerName $ server -Filter DriveType = 3 | Välj-Objekt DeviceID, @ {'Name' = 'Size'; 'Expression' = {[math] :: avkorta ($ _. Storlek / 1GB)}}, @ {'Name' = 'Freespace'; '$ Express $' {$ math.} Truncate {$ _. Freespace / 1GB}}} $ server föreach GB / "+ $ disk.Size.ToString (" N0 ") +" GB "}}

källa

relaterade Post

Lämna ett svar

Den här sidan använder Akismet för att minska spam. Läs om hur din kommentardata behandlas.