lunes, 20 de julio de 2015

Powershell–Guardar información en portapapeles

Hola.

 

Hoy, en un script de powershell, he necesitado guardar cierta información en el portapapeles.

Conseguir esto no puede ser más fácil con el comando “clip”.

 

Un ejemplo práctico es el siguiente:

$user=”usuario”

$password=”pass”

$user,$password | clip

 

Al hacer CTRL+V podréis comprobar el resultado.

Saludos.

miércoles, 1 de julio de 2015

Recoger permisos de una ou con Powershell

 

Hola.

Son muchas las webs que lo indican sin embargo he visto que hay muchas instrucciones erroneas.

Para recoger los permisos que tiene una OU, la instrucción que finalmente me ha funcionado es:

Import-Module ActiveDirectory

Get-Acl -path "ad:\OU=Ejemplo,DC=domain,DC=local").access | select identityreference, accesscontroltype,activedirectoryrights | export-csv -Path c:\temp\OUPermisos.csv

Saludos.

Borrar usuarios en ad sin advertencia

 

Hola

Estoy trabajando en un simple script a través del cual he de borrar cuentas expiradas en AD.

Me he encontrado que el comando remove-aduser no tiene la opción –force por lo que cuando va a borrar un usuario, solicita confirmación y por tanto, no puedo automatizar el borrado de estas cuentas mediante una tarea programada.

Solución

Para las cuentas en las que no está prevista la utilización de la variable –force, podéis utilizar la variable –confirm:$false y con ello saltar la confirmación.

Script

El script es el siguiente:

Function ModuloAD{
    Try
    {
      Import-Module ActiveDirectory -ErrorAction Stop
    }
    Catch
    {
      Write-Host "[ERROR]`t Las herramientas de administración de Active Directory no han podido ser encontradas"
      Exit 1
    }
}

#-------------------------------------------------------------------------------
#Ejecución script general
#-------------------------------------------------------------------------------

ModuloAD

$path="OU=TempAdmusers,Dc=domain,dc=local"

$users= Search-ADAccount -AccountExpired  -SearchBase $path
$users.samaccountname
 
foreach ($user in $users){
    Try
    {
       Remove-ADUser $user -Confirm:$false
    }
    Catch
    {
        Write-Host "[ERROR]`t No se ha podido borrar el usuario $user"
    }
}