GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Windows Low-Disk-Diagnose

Hinweis: Achten Sie beim Ausführen der Skripts in diesem Artikel darauf, PowerShell® als Administrator zu öffnen.

Überprüfen Sie Ihre aktuelle Festplattennutzung mit PowerShell

Wenn Sie wenig Speicherplatz auf einem Windows®-Server diagnostizieren, überprüfen Sie zunächst die aktuelle Nutzung Ihrer Festplatten mithilfe von PowerShell. Verwenden Sie den folgenden Befehl, um die aktuelle Festplattenauslastung für alle Festplatten auf dem Server abzurufen:

Get-WmiObject Win32_LogicalDisk | Where-Object { $_.DriveType -eq "3" } | Select-Object SystemName,
      @{ Name = "Drive" ; Expression = { ( $_.DeviceID ) } },
      @{ Name = "Size (GB)" ; Expression = {"{0:N1}" -f( $_.Size / 1gb)}},
      @{ Name = "FreeSpace (GB)" ; Expression = {"{0:N1}" -f( $_.Freespace / 1gb ) } },
      @{ Name = "PercentFree" ; Expression = {"{0:P1}" -f( $_.FreeSpace / $_.Size ) } } |
      Format-Table -AutoSize | Out-String

Überprüfen Sie die 15 wichtigsten Ordner nach Volumen

Nachdem Sie festgestellt haben, welche Volumes wenig Speicherplatz haben, führen Sie das folgende Skript aus, um die obersten Ordner nach Festplattennutzung zu ermitteln, damit Sie bestimmen können, wo Sie Speicherplatz freigeben können:

cd \
$Table = Get-WmiObject Win32_Volume -ComputerName LocalHost `
| Format-Table Name, `
@{Name="Size(MB)";Expression={"{0:0,0.00}" -f($_.Capacity/1mb)}}, `
@{Name="Free Space(MB)";Expression={"{0:0,0.00}" -f($_.FreeSpace/1mb)}}, `
@{Name="Free (%)";Expression={"{0,6:P0}" -f(($_.FreeSpace/1mb) / ($_.Capacity/1mb))}};
$Table;$input = Read-Host -Prompt 'Input path to traverse'; Set-Location $Input;
function Get-LowDisk($maxResults=15, $startLocation=(Get-Location)){
  if("$startLocation".EndsWith("\")){$startLocation = "$startLocation".TrimEnd("\")}
  function Calc-Directories ($startFolder, $foldersHT=@{}, $depth=1){    $itemSum = 0L;
    if($startFolder -notmatch "c\:\\Windows|System Volume Information"){
        $dirList = Get-ChildItem ($startFolder) -force
        $folders = $dirList | Where-Object {$_.PSIsContainer -eq $True} | Where {($_.attributes.toString() -like "*ReparsePoint*") -eq $False};
        $files   = $dirList | Where-Object {!$_.PSIsContainer -eq $True};      if($files){$itemSum = ($files | Measure-Object -property length -sum).sum;}
        if(!$folders.Count -and $folders -ne $null){
            $subFolder = "$startFolder\" + $folders;
            $itemSum += Calc-Directories "$subFolder" $foldersHT ($depth+1);
        }else{
            for ($i=0;$i -lt $folders.Count; $i++ ){
                $subFolder = "$startFolder\" + $folders[$i].Name;
                if($depth -le 1){ Write-Progress -Activity "Finding Largest Folders" -status ":: Top Level Folders Progress :: $subFolder"-percentComplete ($i / $folders.count*100) -Id 1;}
                $itemSum += Calc-Directories "$subFolder" $foldersHT ($depth+1);
        }   }
        }elseif($startFolder -match "c\:\\Windows"){$itemsum=(Get-ChildItem C:\Windows -force -Recurse -ErrorAction     SilentlyContinue | Measure-Object -property length -sum).sum;}
      $foldersHT[$startFolder] = $itemSum;
      return $itemSum;
    }
    $elapsed = [System.Diagnostics.Stopwatch]::StartNew();
    $resultsHT = @{}; Calc-Directories $startLocation $resultsHT | Out-Null;
    $formattedOutput = $resultsHT.GetEnumerator() | sort value -desc | select -First $maxResults | Format-Table -AutoSize @{Expression={$_.Name};Label="Folder Name"}, @{Expression={($_.Value / 1GB)};Label="Size (GB)";Format="{0:N2}"};
    write-host "`r`n`r`n-- Total Disk Scan Time: $($elapsed.Elapsed.ToString()) --";
    $Table;
    write-host "`r`n-----------`r`nTop $maxResults folders by size`r`n-----------" -foregroundcolor "yellow";
    return $formattedOutput;
} Get-LowDisk 15 ;

Nachdem Sie das Skript ausgeführt haben, werden Sie in einer Meldung aufgefordert, den zu durchlaufenden Pfad einzugeben . Geben Sie den Laufwerksbuchstaben ein, den Sie mit dem vorherigen Skript gefunden haben, und drücken Sie die Eingabetaste um fortzufahren.

Beachten Sie, dass dieser Vorgang je nach Anzahl der Dateien und Ordner auf der Festplatte eine Weile dauern kann. Nachdem das Skript die Ergebnisse zurückgegeben hat, überprüfen Sie die aufgelisteten Ordner, um festzustellen, ob Dateien vorhanden sind, die nicht mehr benötigt werden. Löschen Sie diese Dateien, um Speicherplatz freizugeben.

Warnung: Stellen Sie sicher, dass Sie nur Dateien oder Ordner löschen, mit denen Sie vertraut sind. Wenn Sie unbekannte Dateien oder Ordner löschen, gehen möglicherweise wichtige Systemdateien oder Software verloren. Dieser Verlust kann dazu führen, dass der Server oder die Software nicht mehr funktioniert.


Linux
  1. Hinzufügen einer IP zu einem Windows-Server

  2. Aktivieren von TLS 1.2 auf einem Windows-Server

  3. Installieren Sie Nginx unter Windows

  4. Installieren Sie python-novaclient unter Windows

  5. Langsame Windows-Anmeldungen

So installieren Sie Python 3 unter Windows 10

8 beste PuTTY-Alternativen

Die 5 besten Linux-Betriebssysteme zum Ersetzen von Windows XP

6 Linux-Distributionen zum Ersetzen von Windows 10 &7

So führen Sie Windows 95 unter Linux aus

Linux vs. Windows-Sicherheit