RSS
email
0

Trabajo con registros en PowerShell.

Trabajo con registros en PowerShell.

Powershell nos permite trabajar con registros de Windows que son tratados más o menos como carpetas y dentro de éstas los registros como propiedades.

Por ejemplo, para acceder a los registros de que ejecutan los programas al inicio de la sesión de windows, es decir, a HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

image

 

 

Con Get-ItemProperty . conseguimos que se listen las propiedades encontradas dentro de RUN .

Para eliminar un registro

Read more
1

Script para eliminar archivos más antiguos de X días

imageHoy he preparado un script bastante sencillo para eliminar todos los ficheros, directorios más antiguos de 8 días, ésto es útil en situaciones en las que se tiene una carpeta compartida donde se almacenan archivos temporales, en carpetas de archivos de log....
Éste elimina los archivos cuya fecha de creación es anterior a 8 días

Get-ChildItem -recurse |if {$_.CreationTime -lt (get-date).AddDays(-8)} |Remove-Item -recurse -Force


Y éste elimina todos los archivos cuya última modificación es mayor a 8 días



Get-ChildItem -recurse |if {$_.LastWriteTime -lt (get-date).AddDays(-8)} |Remove-Item -recurse -Force




En este enlace hay una función ya implementada:


http://www.winblogs.net/index.php/2009/10/01/delete-files-older-from-in-powershell/



## Este script elimina todos los archivos (no directorios) 
## que sean más antiguos de $NumDays, y genera un archivo log ## de los archivos eliminados

$folder = "C:\ejemplo" # Carpeta de ejemplo
$NumDays = 90 # Número de días
$CurDate = get-date # Guarda en la variable la fecha actual
$TestDate = $Curdate.AddDays(-$NumDays) # set TestDate
# Crea el archivo de log
$strData = "Files deleted from: " + $folder + " on " + $CurDate

## Busca de forma recursiva los archvos que son más antiguos de ## $NumDays

get-childitem $folder -recurse | foreach {
If ($_.GetType().Name -eq "FileInfo")
{
If ($_.LastWriteTime -lt $TestDate)
{
$strData = "File to delete: " + $_.Name + " " + $_.LastWriteTime
$strData | out-file -Append DeletedFiles.log
$_.Delete()
$strData | out-file "c:\DeletedFiles.log"
}
}
}



Éste script es una modificación de:

http://richardsiddaway.spaces.live.com/blog/cns!43CFA46A74CF3E96!225.entry

Read more
0

Powershell, primeras pruebas

Desde la salida de Windows 7, PowerShell 2 viene integrado en el sistema de serie, así como en Windows 2008.
¿Qué es PowerShell?
Según la Wiki:

Windows PowerShell es una interfaz de consola (CLI) con posibilidad de escritura y conjunción de comandos por medio de guiones (scripts en inglés). Es mucho más rica e interactiva que sus predecesores, desde DOS hasta Windows XP. Esta interfaz de consola está diseñada para su uso por parte de administradores de sistemas, con el propósito de automatizar tareas o realizarlas de forma más controlada.

Un de las principales novedades de Powershell V2, además de tener un editor integrado es la posibilidad de administración remota, tanto de servidores como de estaciones de trabajo. (descarga de powershell 2).

image

Para configurar la administración remota en Windows 2003 es necesario configurar “winrm”. Para ello abrimos una consola (cmd) y ejecutamos el comando “winrm quickconfig” aceptamos los cambios y ya podemos acceder y gestionar el servidor remotamente

En powershell:

Enable-PSRemoting


Permite la administración remota



Ahora, por ejemplo podríamos entrar en una consola de powershell del servidor remoto desde nuestro editor de powershell ISE.




sesion = New-PSSession -ComputerName <nombre_server> -credential <dominio\administrador>
Enter-PSSession $sesion
Get-process

Con este pequeño script accederíamos remotamente al servidor



Exit-PSSesion #Sale de la sesión actualGet-PSSession | Remove-PSSession#Elimina la conexión
Read more
 

Recent Posts

Friends

Categories