GNU/Linux >> Znalost Linux >  >> Linux

Diagnostika nízkého disku ve Windows

Poznámka: Při spouštění skriptů v tomto článku nezapomeňte otevřít PowerShell® jako správce.

Zkontrolujte aktuální využití disku pomocí PowerShell

Když diagnostikujete nedostatek místa na disku na serveru Windows®, začněte ověřením aktuálního využití na vašich discích pomocí prostředí PowerShell. Pomocí následujícího příkazu získáte aktuální využití disku pro všechny disky na serveru:

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

Zkontrolujte 15 nejlepších složek podle objemu

Poté, co zjistíte, na kterých svazcích je málo místa na disku, spusťte následující skript k určení horních složek podle využití disku, abyste mohli určit, kde můžete uvolnit místo:

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 ;

Po spuštění skriptu se zobrazí zpráva s výzvou Zadat cestu k procházení . Zadejte písmeno jednotky, které jste našli pomocí předchozího skriptu, a stiskněte Enter pokračovat.

Mějte na paměti, že tento proces může chvíli trvat v závislosti na počtu souborů a složek na disku. Poté, co skript vrátí výsledky, zkontrolujte uvedené složky, zda neexistují nějaké soubory, které již nejsou potřeba. Smažte tyto soubory, abyste uvolnili místo na disku.

Upozornění: Ujistěte se, že smažete pouze soubory nebo složky, které znáte. Pokud odstraníte neznámé soubory nebo složky, můžete ztratit důležité systémové soubory nebo software. Tato ztráta by mohla způsobit nefunkčnost serveru nebo softwaru.


Linux
  1. Nainstalujte Nginx na Windows

  2. Nainstalujte python-novaclient na Windows

  3. Pomalé přihlašování do Windows

  1. 10 DŮVODŮ PRO ZMĚNU WINDOWS 10 NA LINUX

  2. Připojit k různým oknům v relaci?

  3. Windows ekvivalent inet_aton

  1. Přidání IP adresy na Windows Server

  2. Přehled prohlížeče událostí Windows

  3. Diagnostika nedostatku paměti Windows