Powershell

Powershell borrar copias anteriores

En muchas ocasiones nos encontramos con procesos de copia de seguridad que no disponen de una política de retención adecuada, este es, realizan copias de seguridad sin borrar las copias que tienen determinados días o meses de antiguedad (por ejemplo las copias realizadas con scripts de backup desde MSSQL Server)

Para prevenir que el disco llegue a llenarse por completo con las copias, podemos realizar un script que se ejecute de forma diaria, y que borre los archivos de una carpeta y subcarpetas que sean anteriores a la fecha actual menos X días

El script es muy sencillo

Get-ChildItem –Path "C:\COPIAS\MSSQLSERVER" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-30))} | Remove-Item 

En este ejemplo el script realiza el borrado de los archivos que se encuentran en la carpeta C:\COPIAS\MSSQLSERVER, que tengan más de 30 días de antiguedad

Si por ejemplo tenemos copias diarias y mensuales, con un backup que se ejecute por ejemplo todos los días a una determinada hora, y un backup mensual que se ejecute los días 1 de cada mes. El script seria de la siguiente forma:

Get-ChildItem –Path "C:\COPIAS\MSSQLSERVER\DIARIAS" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-30))} | Remove-Item 
Get-ChildItem –Path "C:\COPIAS\MSSQLSERVER\MENSUALES" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-366))} | Remove-Item

Powershell reiniciar adaptador de red

Reiniciar in adaptador de red en Powershell

En primer lugar deberemos averiguar los nombres de las interfaces de red

netsh interface show interface

Una vez localizada la interfaz que queremos reiniciar, procederemos a reiniciarla

Restart-NetAdapter -Name "Ethernet 3"

Reiniciar la conexión

@echo off

netsh wlan disconnect && netsh wlan connect "Ethernet 3"

Realizarlo mediante comandos WMIC

Con WMIC, la Consola de Instrumental de administración de Windows, también podemos reiniciar cualquiera de los adaptadores de red en Windows.

Para eso haz lo siguiente:

wmic nic get name, index

A continuación ejecuta las dos siguientes instrucciones para deshabilitar y habilitar el adaptador. Recuerda sustituir index (X) por el valor index del adaptador que deseas reiniciar.

wmic path win32_networkadapter where index=X call disable
wmic path win32_networkadapter where index=X call enable

Powershell Windows Firewall

El Firewall avanzado de Windows se puede volver a configurar fácilmente desde Powershell, Al ejecutar los siguientes comandos en el símbolo del sistema de Windows PowerShell, se abren los puertos TCP necesarios para las conexiones entrantes.

Ejemplo

# Allow access to Email ports from everwhere
netsh advfirewall firewall add rule name="Mail" `
  action=ALLOW dir=IN protocol=TCP localport="143,443,993" profile=ANY

# Allow access to Console from administrator network 192.0.2.0/24
netsh advfirewall firewall add rule name="Mail Managemnet" `
  action=ALLOW dir=IN protocol=TCP localport="8443" remoteip="192.0.2.0/24" profile=ANY

# Allow access to Mail Management API from adminstrator network 192.0.2.0/24
netsh advfirewall firewall add rule name="MailS API" `
  action=ALLOW dir=IN protocol=TCP localport="10443" remoteip="192.0.2.0/24" profile=ANY