Powershell Exportación de usuarios Directorio Activo

En este post vamos a exportar mediante Powershell los usuarios de Directorio Activo a un archivo CSV. Este proceso puede seros útil cuando estéis moviendo usuarios de un dominio a otro para lo cual necesitareis un script de importación que os pondré en el próximo post.

Aquí os va el script:

#Path base donde dejar todos los ficheros y realizar la búsqueda de los que se necesiten.

#Aqui debe de residir el script.

#Ejemplo C:\Script\*.*

 

$path
=
Split-Path
-parent
“c:\script\*.*”

 

#Fecha para el TimeStamp del Log.

 

$LogDate
=
get-date
-f
yyyyMMddhhmm

 

#Ubicacion de los ficheros CSV y Log

#Deben de estar en la misma ubicacion que el script.

 

$csvfile
=
$path
+
“\ALLADUsers_$logDate.csv”

 

#Importamos el módulo de Acive Directory

 

Import-Module
ActiveDirectory

 

#Path DN donde residen los usuarios a exportar

#Ejemplo “OU=Usuarios,DC=dominio,DC=local”

 

$SearchBase
=
“DC=dominio,DC=local”

 

#Get Admin accountb credential

 

$GetAdminact
=
Get-Credential

 

#Controlador de dominio

#Ejemplo DC1

 

$ADServer
=
‘DC1’

 

 

#Buscamos todos los usuarios basados en los parámetros anteriores

 

$AllADUsers
=
Get-ADUser
-server
$ADServer `

-Credential
$GetAdminact
-searchbase
$SearchBase `

-Filter
*
-Properties
*

 

#Filtramos atributos mostrar

$AllADUsers
|

Select-Object @{Label =
“Nombre”;Expression = {$_.GivenName}},

@{Label =
“Apellidos”;Expression = {$_.Surname}},

@{Label =
“DisplayName”;Expression = {$_.DisplayName}},

@{Label =
“SAM”;Expression = {$_.sAMAccountName}},

@{Label =
“Direccion”;Expression = {$_.StreetAddress}},

@{Label =
“Ciudad”;Expression = {$_.City}},

@{Label =
“Estado”;Expression = {$_.st}},

@{Label =
“Codigo Postal”;Expression = {$_.PostalCode}},

@{Label =
“Pais/Region”;Expression = {if (($_.Country -eq
‘ES’) ) {‘España’} Else {}}},

@{Label =
“Titulo”;Expression = {$_.Title}},

@{Label =
“Compañia”;Expression = {$_.Company}},

@{Label =
“Descripcion”;Expression = {$_.Description}},

@{Label =
“Departamento”;Expression = {$_.Department}},

@{Label =
“Oficina”;Expression = {$_.OfficeName}},

@{Label =
“Telefono”;Expression = {$_.telephoneNumber}},

@{Label =
“Email”;Expression = {$_.Mail}},

@{Label =
“Administrador”;Expression = {%{(Get-AdUser
$_.Manager -server $ADServer
-Properties
DisplayName).DisplayName}}},

@{Label =
“Estado de cuenta”;Expression = {if (($_.Enabled -eq
‘TRUE’) ) {‘Enabled’} Else {‘Disabled’}}},

@{Label =
“Ultimo inicio de sesion”;Expression = {$_.lastlogondate}} |

 

#Exportamos a CSV

Export-Csv
-Path
$csvfile
-NoTypeInformation


 



Gracias

Este verano se han cumplido ya 15 años desde que empecé en el mercado laboral y tengo que decir que he tenido mucha suerte en esta trayectoria donde he conocido a grandes profesionales del sector y de los que he intentado aprender lo máximo posible.

Lo que quiero reflejar en esta entrada un tanto extraña para el blog, es lo que mucha gente no ve cuando busca trabajo y que muchas veces es muy poco valorado, y son los compañeros con los que vas a convivir durante 8 horas al día. Considero que para que un grupo funcione, sus individuos tienen que sentirse orgullosos de sí mismo y de sus compañeros, donde no solo sea trabajo, sino que haya un componente de amistad entre ellos, donde uno ayude a otro sin esperar nada y donde el objetivo de cada uno está ligado al objetivo del grupo. En ello trabajo cada día, pero a veces por el estrés, la presión, o la simple rutina, uno no está en su mejor momento; entonces surgen roces y es ahí donde el grupo es tan importante. Que tus compañeros sepan decirte que te equivocas, te pongan calificativos que no te gustan y que no van contigo, o simplemente que te digan que te ven triste; pero de una forma en que notas que les importas, porque no ves que te echan nada en cara.

Durante este tiempo he tenido esa suerte, no siempre, también es cierto, pero a día de hoy la disfruto, y lo digo un día en donde un compañero me ha puesto esos calificativos, pero con una sonrisa y otro me ha dicho que me ve triste, pero que me lleva comer para que desconecte; eso no viene en el contrato, no hay ninguna cláusula que ponga que te tienen que sonreír o que se preocupen por ti.

Gracias, mañana prometo ser yo el que sonría.



Azure Automatizacion para PowerShell ISE

En esta entrada vamos a ver como instalar el complemento para PowerShell ISE de Automatización de Azure. Con este complemento el desarrollo de runbooks para la automatización de Azure te será más sencilla. Aquí tenéis toda la info

https://github.com/azureautomation/azure-automation-ise-addon

Instalamos el modulo

Install-Module AzureAutomationAuthoringToolkit -Scope CurrentUser

 

Cargamos el modulo

Import-module AzureAutomationAuthoringToolkit

Si queremos que PowershellISE cargue siempre el modulo

Install-AzureAutomationIseAddOn

 

El Add-On se cargara en Powershell ISE



Instalación de Azure Powershell

En esta entrada vamos a instalar y usar el módulo de Azure PowerShell. Si trabajas con Azure sabes que Powershell es básico más cuando realizas tareas de automatización. Tened en cuenta y supongo que para todos los que utilizamos Azure esto no es nuevo, tenemos dos módulos de Powershell, el del nuevo portal y el del clásico.

Si estamos con el nuevo, para instalarlo

Install-Module AzureRM

 

Si utilizamos powershell a través del portal clásico

Install-Module Azure

Para iniciar sesión en el nuevo portal

Login-AzureRmAccount


En el portal clásico

Add-AzureAccount



Poweshell – Conexión y uso de SSH

Ahora en los nuevos Windows 10 puedes utilizar Powershell para SSH utilizando una solución de terceros llamadas Posh-SSH. Como muchos módulos de Powershell lo primero que debemos de hacer es instalarlo.

Install-Module -Name Posh-SSH -RequiredVersion 1.7.4

Una vez instalado vamos a probarlo. Para establecer una sesión utilizamos el cmdlet New-SSHSession

New-SSHSession -ComputerName “diazantuna1.azure.cloudapp.net” -Credential (Get-Credential)

Para ejecutar un comando utilizamos el cmdlet Invoke-SSHCommand

Invoke-SSHCommand -Index 0 -Command “pwd”

Si queréis mas info aquí os dejo un enlace donde podéis obtener scripts de uso de Posh-SSH.

Posh-SSH: Open Source SSH PowerShell Module



Evento EMS – Controlando lo Incontrolable