Verifique el uso actual de su disco con PowerShell
Cuando diagnostique poco espacio en disco en un servidor Windows®, comience por verificar el uso actual en sus discos mediante PowerShell. Use el siguiente comando para extraer la utilización actual del disco para todos los discos en el servidor:
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
Consulte las 15 carpetas principales por volumen
Después de determinar qué volúmenes tienen poco espacio en disco, ejecute el siguiente script para determinar las carpetas principales por uso del disco para que pueda determinar dónde puede liberar espacio:
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 ;
Después de ejecutar el script, un mensaje le pide que Ingrese la ruta a recorrer . Escriba la letra de la unidad que encontró usando el script anterior y presione Enter para proceder.
Tenga en cuenta que este proceso puede demorar un tiempo dependiendo de la cantidad de archivos y carpetas en el disco. Después de que la secuencia de comandos devuelva los resultados, verifique las carpetas enumeradas para ver si hay archivos que ya no son necesarios. Elimine esos archivos para liberar espacio en disco.
Advertencia: Asegúrese de eliminar solo archivos o carpetas con los que esté familiarizado. Si elimina archivos o carpetas desconocidos, es posible que pierda software o archivos importantes del sistema. Esta pérdida podría hacer que el servidor o el software dejen de funcionar.