dani

Eliminación de archivos antiguos Windows 10 – 11 y Powershell

Uno de los problemas que nos podemos encontrar en una máquina, ya sea cliente o servidor, es quedarnos sin espacio en disco.

Para solucionarlo, a veces es tan sencillo como borrar una carpeta y así conseguimos liberar espacio para «ir tirando». Otras veces no es tan sencillo, ya que depende de qué archivos tenemos, qué política tenemos a la hora de hacer una purga…

También, por exigencias del guion, tenemos que eliminar, por ejemplo, partes o justificantes caducados, copias de seguridad obsoletas.

Podemos automatizar estas tareas con un sencillo script con Powershell, el cuál recorre un path con todos sus subdirectorios y el archivo que sea más antiguo de 15 días, lo elimina.

$dias = "-15"
$limite = (Get-Date).AddDays($dias)
$path = "D:\Copias de Seguridad" 
Get-ChildItem -Path $path -Recurse -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limite } | Remove-Item -Force -verbose 

$dias -> indico la antigüedad, en días, de los archivos que quiero eliminar.

$limite -> a través del cmdlet «Get-Date», con su atributo «AddDays» le pasamos un parámetro que calcula la fecha límite para decidir si el archivo se borra o no.

$path -> pasamos la ruta desde la que se van a analizar los archivos

En la acotación a la búsqueda, en la parte de «Where-Object» indico con !$_.PSIsContainer que solamente se seleccione archivos que no sean carpetas y con $_.CreationTime que los archivos tienen que ser más antiguos de la fecha que queramos al declararlo en la variable $dia.

Generar un CSV con los permisos de un árbol de directorios

En esta ocasión, vamos a revisar una ruta para obtener los permisos que hay en cada una de las carpetas y subcarpetas que lo conforman.

Get-Childitem -path “D:\” -recurse | Where-Object {$_.PSIsContainer} | Get-ACL| Select-Object Path -ExpandProperty Access | Export-CSV “C:\temp\ntfs_permisos_folder.csv” -NoTypeInformation

Paso a paso:

  • Get-Childitem -path “D:\” -recurse

Get-Childitem muestra todos los directorios y archivos que hay en una ruta específica.

-path “D:\” indicamos el directorio raíz.

-recurse se efectúa de forma recursiva para mostrar los subdirectorios.

  • Where-Object {$_.PSIsContainer}

Con esta opción solamente se acota la visualización a los directorios. Se excluyen los archivos.

  • Get-ACL | Select-Object Path -ExpandProperty Access

Get-ACL muestra la lista de control de accesos a la ruta o el objeto especificado.

Select-Object Path – ExpandProperty Access. Selecciona el objeto path (ruta) y además, el objeto Access se le fuerza con -ExpandProperty a mostrarlo entero.

  • Export-CSV “C:\temp\ntfs_permisos_folder.csv” -NoTypeInformation exporta todo el resultado de todo lo anterior en un archivo CSV, el cual facilita el posterior tratamiento de datos.

Revisar instantáneas (snapshots) en VMware

En ocasiones, necesitamos saber el espacio ocupado por nuestras instantáneas (snapshots) de las máquinas virtuales alojadas en nuestros datastores.

Utilizando la aplicación PowerCLI de VMware, lanzo siguientes cmdlets para obtener un listado de todos los snapshots activos de las máquinas virtuales de un Vcenter.

Connect-VIServer -Server [VCenterServer]
Get-VM | Get-Snapshot | Format-List vm,name,iscurrent,sizegb,description

Paso a paso:

  • Connect-VIServer -Server [VCenterServer]
  • inicia sesión sobre el VCenter indicado
  • Get-VM | Get-Snapshot | Format-List vm,name,iscurrent,sizegb,description
  • nos muestra por pantalla, en formato lista, el nombre de la máquina virtual, el nombre del snapshot, si el snapshot está usándose (iscurrent), el tamaño que ocupa (en GB) y la descripción.

Actualizar cuotas de directorios en FSRM con línea de comandos

Muchas veces tenemos configuradas o asignadas unas cuotas a ciertas rutas compartidas (o shares) para que los clientes no nos saturen el sistema de almacenamiento. Pero algunas veces, esas cuotas llegan al 100% de uso y el usuario borra el contenido total o parcial de la ruta con cuota y sigue teniendo problemas al añadir más contenido, ya que el porcentaje de uso no cambia.

En ocasiones, para solventar este problema, el administrador elimina la cuota y la vuelve a crear, con lo que el valor del porcentaje de uso se “actualiza” y de esa forma se “soluciona” el problema.

Pero realmente, el problema se va a volver a producir cuando se vuelva a llenar el directorio y se llegue al máximo que marca la cuota. Por eso, la mejor opción para actualizar el porcentaje de uso de una o varias cuotas es crear una tarea programada para actualizar los valores de dichas cuotas.

Actualizar las cuotas de directorios en FSRM se puede realizar de varias formas, a través de la consola del File Server Resource Manager o a través de línea de comandos (con cmd o con powershell).

CMD:

dirquota quota scan /path:[ruta de la cuota]

En las nuevas versiones de Windows Server funciona, pero Microsoft recomienda empezar a usar el cmdlet de PowerShell equivalente.

PowerShell:

foreach ($ruta in Get-FsrmQuota) { Update-FsrmQuota -path $ruta.path -Confirm:$false }

Con este método, en una sola línea, podemos refrescar todas las cuotas configuradas en un servidor. A continuación, explico el cmdlet:

  • Con Foreach guardo en la variable $ruta lo que va devolviendo Get-FsrmQuota, que es cada una de las cuotas configuradas en el servidor.
  • Get-FsrmQuota -> me devuelve el listado de todas las cuotas configuradas en el Servidor.
  • Update-FsrmQuota -> actualizo el porcentaje de uso de la cuota del directorio pasado por el parámetro -path.
  • -Path -> Como me interesa la propiedad “path” de $ruta, en el parámetro -path [ruta del directorio] indico $ruta.path

Hola Mundo!!!

Hola a todos. Mi nombre es Dani y este es el primer post de muchos (espero, jejeje).
Soy una persona que le apasiona el universo de las tecnologías, en especial el mundo Microsoft y virtualización, sobre todo con VMware, y de esto va a ir este blog. Lo abro con la idea de aportar mis conocimientos de estos dos grandes fabricantes, tanto los que ya tengo como los que voy adquiriendo con el paso del tiempo. Haré tutoriales y videotutoriales explicando trucos, procedimientos, manuales…
Espero que os ayude y os guste, y que colaboréis en la medida de lo posible.
Un saludo a todos y bienvenidos.