Kako najti zmogljivosti diska in prostega prostora oddaljenih računalnikov

Iskanje zmogljivosti diska in prostega prostora lokalnega računalnika je preprosto, vendar ne tako enostavno z oddaljenega računalnika, še posebej prek vmesnika GUI. To je veliko lažje izkoristiti moč PowerShell in tukaj je, kako lahko to storite.

Get-PSDrive je domači PowerShell cmdlet, v katerem so navedeni vsi pogoni za shranjevanje v vašem lokalnem sistemu.

Zožite lahko samo seznam datotek v sistemih tako, da izberete rezultat na Kje klavzula.

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

Ker cmdlet nima a -ComputerName preklopimo na dostop do oddaljenih računalnikov, ki jih potrebujemo Invoke-Command da zaženete cmdlet na oddaljenem računalniku.

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

To deluje precej dobro samo, ko ga imate WinRM in PSRemoting omogočena na oddaljenih računalnikih. In zato mi je všeč Get-WmiObject še boljša metoda.

Get-WmiObject Win32_LogicalDisk-Računalniško ime remote_computer -Filter DriveType = 3 | Select-Object DeviceID, FreeSpace, Velikost

Če želite seznam velikosti v GB formatu,

Get-WmiObject Win32_LogicalDisk-Računalniško ime remote_computer -Filter DriveType = 3 | Select-Object DeviceID, @ {'Ime' = 'Velikost (GB)'; 'Izraz' = {[matematika]: truncate ($ _. Size / 1GB)}}, @ {'Ime' = 'Freespace (GB)'; 'Izraz' = {[matematika]: truncate ($ _. Freespace / 1GB)}}

Kaj pa prikazati rezultat s tisočimi ločevalci?

Get-WmiObject Win32_LogicalDisk-Računalniško ime remote_computer -Filter DriveType = 3 | Select-Object DeviceID, @ {'Ime' = 'Velikost (GB)'; 'Expression' = {[string] :: Format ('{0: N0}', [math] :: truncate ($ _. Size / 1GB))}, @ {'Ime' = 'Freespace (GB) ; 'Izraz' = {[string] :: Format ('{0: N0}', [math] :: truncate ($ _. Freespace / 1GB))}}

Do enega od zagonov lahko dostopate do več oddaljenih računalnikov, tako da vse od njih položite po -ComputerName stikalo, ločeno z vejico.

Get-WmiObject Win32_LogicalDisk-računalniško-računalniški računalnik1, računalniški2, računalnik3 -Filter DriveType = 3 | Select-Object DeviceID, @ {'Ime' = 'Velikost (GB)'; 'Expression' = {[string] :: Format ('{0: N0}', [math] :: truncate ($ _. Size / 1GB))}, @ {'Ime' = 'Freespace (GB) ; 'Izraz' = {[string] :: Format ('{0: N0}', [math] :: truncate ($ _. Freespace / 1GB))}}

Tudi tukaj je scenarij, ki sem ga sestavil, ki ima boljši formatirani izhod.

$servers = @("computer1", "computer2", "computer3")

Foreach ($server in $servers)
{
    $disks = Get-WmiObject Win32_LogicalDisk -ComputerName $server -Filter DriveType=3 | 
        Select-Object DeviceID, 
            @{'Name'='Size'; 'Expression'={[math]::truncate($_.size / 1GB)}}, 
            @{'Name'='Freespace'; 'Expression'={[math]::truncate($_.freespace / 1GB)}}

    $server

    foreach ($disk in $disks)
    {
        $disk.DeviceID + $disk.FreeSpace.ToString("N0") + "GB / " + $disk.Size.ToString("N0") + "GB"

     }
 }

vir

Related Post

Pustite Odgovori

Ta stran uporablja Akismet za zmanjšanje nezaželene pošte. Preberite, kako se vaš komentar obravnava.