So finden Sie Plattenkapazität und freie Speicherplatz von Remote-Computer

Die Suche nach Plattenkapazität und die freien Speicherplatz von einem lokalen Computer ist einfach, aber nicht so einfach von einem entfernten Computer, insbesondere durch eine GUI-Schnittstelle. Es ist viel einfacher, die Leistung von Powershell zu nutzen und hier ist, wie Sie es tun können.

Get-PSDrive ist eine native Powershell-Cmdlets, die alle Speicherlaufwerke auf dem lokalen System listet.

Sie können nur verengen, um die Dateisysteme auflisten, indem Sie das Ergebnis an eine Rohrleitung aus Woher Klausel.

Get-PSDrive | Wo {$ _. Kostenlose -gt 0}

Da das Cmdlet nicht über ein -Computername Schalter Remote-Computer zugreifen, wir brauchen Invoke-Command das Cmdlets auf einem Remote-Computer ausführen.

Invoke-Command -ComputerName remote_computer {Get-PSDrive | Wo {$ _. Kostenlose -gt 0}}

Das funktioniert ziemlich gut, nur wenn Sie WinRM und PSRemoting aktiviert auf den Remote-Computern. Und das ist, warum ich das gerne Get-WmiObject Verfahren noch besser.

Get-WmiObject Win32_LogicalDisk -ComputerName remote_computer -Filter Drivetype = 3 | Select-Object DeviceID, Freiraum, Größe

Um die Größe in GB-Format Liste,

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

Wie wäre das Ergebnis mit den Tausendertrennzeichen-Display?

Get-WmiObject Win32_LogicalDisk -ComputerName remote_computer -Filter DriveType=3 | Select-Object DeviceID, @{'Name'='Size (GB)'; 'Expression'={[string]::Format('{0:N0}',[math]::truncate($_.size / 1GB))}}, @{'Name'='Freespace (GB)'; 'Expression'={[string]::Format('{0:N0}',[math]::truncate($_.freespace / 1GB))}}

Sie können mehr Remote-Computer von einem Trum zugreifen, indem sie alle nach dem Putting -Computername Schalter, durch ein Komma getrennt.

Get-WmiObject Win32_LogicalDisk -ComputerName computer1,computer2,computer3 -Filter DriveType=3 | Select-Object DeviceID, @{'Name'='Size (GB)'; 'Expression'={[string]::Format('{0:N0}',[math]::truncate($_.size / 1GB))}}, @{'Name'='Freespace (GB)'; 'Expression'={[string]::Format('{0:N0}',[math]::truncate($_.freespace / 1GB))}}

Ebenfalls, hier ist das Skript, das ich zusammengestellt, die eine bessere formatiert Ausgang.

$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"

     }
 }

Quelle

In Verbindung stehende Pfosten

Hinterlasse eine Antwort

Diese Seite nutzt Akismet Spam zu reduzieren. Erfahren Sie, wie Sie Ihren Kommentar Daten verarbeitet.