GNU/Linux >> Tutoriels Linux >  >> Linux

Diagnostics de disque faible Windows

Remarque : Lors de l'exécution des scripts de cet article, assurez-vous d'ouvrir PowerShell® en tant qu'administrateur.

Vérifier l'utilisation actuelle de votre disque avec PowerShell

Lorsque vous diagnostiquez un espace disque insuffisant sur un serveur Windows®, commencez par vérifier l'utilisation actuelle de vos disques à l'aide de PowerShell. Utilisez la commande suivante pour extraire l'utilisation actuelle du disque pour tous les disques du serveur :

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

Vérifiez les 15 premiers dossiers par volume

Après avoir déterminé quels volumes manquent d'espace disque, exécutez le script suivant pour déterminer les meilleurs dossiers en fonction de l'utilisation du disque afin de pouvoir déterminer où vous pouvez libérer de l'espace :

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 ;

Après avoir exécuté le script, un message vous invite à Saisir le chemin à parcourir . Tapez la lettre de lecteur que vous avez trouvée en utilisant le script précédent et appuyez sur Entrée pour continuer.

Gardez à l'esprit que ce processus peut prendre un certain temps en fonction du nombre de fichiers et de dossiers sur le disque. Une fois que le script a renvoyé les résultats, vérifiez les dossiers répertoriés pour voir s'il y a des fichiers qui ne sont plus nécessaires. Supprimez ces fichiers pour libérer de l'espace disque.

Avertissement : Assurez-vous de ne supprimer que les fichiers ou dossiers que vous connaissez. Si vous supprimez des fichiers ou des dossiers inconnus, vous risquez de perdre des fichiers système ou des logiciels importants. Cette perte pourrait rendre le serveur ou le logiciel non fonctionnel.


Linux
  1. Activation de TLS 1.2 sur un serveur Windows

  2. Installer Nginx sur Windows

  3. Installer python-novaclient sous Windows

  4. Présentation de l'Observateur d'événements Windows

  5. Diagnostics de mémoire insuffisante de Windows

Comment installer Python 3 sur Windows 10

8 meilleures alternatives de mastic

5 meilleurs systèmes d'exploitation Linux pour remplacer Windows XP

6 distributions Linux pour remplacer Windows 10 et 7

Comment exécuter Windows 95 sous Linux

Sécurité Linux contre Windows