Saltar a contenido

PowerShell.

  • Es el intérprete de comandos de Windows.

No confundir la consola de PowerShell con el CMD de Windows.

  • La extensión de sus ficheros es .ps1.

  • Se puede ejecutar como administrador haciendo botón derecho y "Ejecutar como Administrador".

  • El Powershell ISE es un entorno para crear los scripts a la vez que los ejecutamos y vemos sus resultados.

Set-ExecutionPolicy -ExecutionPolicy Unrestricted.

Es posible que para poder ejecutar scripts se deba habilitar su uso con el comando Set-ExecutionPolicy -ExecutionPolicy Unrestricted.

Crear usuarios a partir de un CSV.

CSV.

Un fichero CSV es aquel que tiene un delimitador entre campos (, . : ;) y permite mostrarlo en formato columnas, por ejemplo con Excel.

La variable $_ hace referencia a los valores de las celdas que va leyendo de cada columna.

#Importa los datos de un fichero CSV.
Import-Csv .\ListUsersAD.csv | foreach-object { 

#Datos del usuario a crear.
#Path indica la ruta LDAP donde se va a crear el usuario.
New-ADUser -SamAccountName $_.Cuenta -UserPrincipalName $_.Correo -Name $_.Nombre -SurName $_.Apellido -Path $_.Ruta 

#Contraseña pasada como texto plano.
-AccountPassword (ConvertTo-SecureString "Usuario1234" -AsPlainText -force) 

#Usuario habilitado, con contraseña que no expira y que debe cambiar la contraseña al iniciar por primera vez.
#PassThru es para que nos muestre información por consola del objeto LDAP creado.
-Enabled $True -PasswordNeverExpires $False -ChangePasswordAtLogon $True -PassThru }

Crear grupos a partir de un CSV.

#Importa los datos de un fichero CSV.
Import-Csv .\GroupsAD.csv | foreach-object { 

#Crea un grupo, indicando su nombre, categoría, ámbito y la ruta donde se crea dicho grupo.
New-ADGroup -Name $_.Name -GroupCategory $_.GroupCategory -GroupScope $_.GroupScope -Path $_.Path}

Mostrar los grupos vacíos.

Hay que tener en cuenta que no hay que borrar los grupos predeterminados vacíos del propio dominio.

Get-ADGroup -Filter * -Properties Members |
Where-Object { -not $_.Members } |
Select-Object Name, DistinguishedName