Private/Get-TechCareFreeSpace.ps1
|
function Get-TechCareFreeSpace { <# .SYNOPSIS Devuelve los bytes libres de una unidad. .DESCRIPTION Se mide antes y despues de la limpieza para informar el espacio realmente recuperado, en vez del tamano de lo que se intento borrar. #> [CmdletBinding()] [OutputType([int64])] param( [ValidateNotNullOrEmpty()] [string]$Drive = $env:SystemDrive ) if (-not (Test-TechCarePlatform)) { return [int64]0 } try { $disk = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DeviceID='$Drive'" -ErrorAction Stop if ($null -ne $disk) { return [int64]$disk.FreeSpace } } catch { # Un fallo al medir no debe impedir la limpieza; se devuelve 0 y el modulo # informa solo lo que borro, sin variacion de espacio libre. Write-Verbose ('No se pudo medir el espacio libre de {0}: {1}' -f $Drive, $_.Exception.Message) } return [int64]0 } |