Powershell

UTF-8

Establecer la codificación a UTF-8 para manejar caracteres especiales:

$OutputEncoding = [System.Text.Encoding]::UTF8

Variables

Solicitar los números al usuario con soporte para caracteres especiales:

$numero1 = Read-Host "Introduce el primer número"

Convertir los valores de texto a números:

$numero1 = [int]$numero1

Realizar las operacione:

$suma = $numero1 + $numero2
$resta = $numero1 - $numero2
$multiplicacion = $numero1 * $numero2

Mostrar los resultados:

Write-Host "La suma de $numero1 y $numero2 es: $suma"
Write-Host "La resta de $numero1 y $numero2 es: $resta"
Write-Host "La multiplicación de $numero1 y $numero2 es: $multiplicacion"

Funciones

Declaración de funciones:

Llamada a la función pasandole varibales:

Parámetros

Obtener los números desde los parámetros:

Comprobar si se han pasado los parámetros correctos:

Operadores

Operadores de comparación comunes:

Operador
Significado
Ejemplo

-eq

Igual a

5 -eq 5 → $true

-ne

No igual a

5 -ne 3 → $true

-gt

Mayor que

5 -gt 3 → $true

-lt

Menor que

5 -lt 10 → $true

-ge

Mayor o igual que

5 -ge 5 → $true

-le

Menor o igual que

5 -le 6 → $true

Operadores de comparación de cadenas (texto):

Operador
Significado
Ejemplo

-eq

Igual (no sensible a mayúsculas)

"Hola" -eq "hola" → $true

-ceq

Igual (sensible a mayúsculas)

"Hola" -ceq "hola" → $false

-like

Coincidencia con comodines (*)

"archivo.txt" -like "*.txt"

-clike

-like sensible a mayúsculas

"Hola" -clike "H*"

-match

Coincidencia con regex

"abc123" -match "\d+"

-cmatch

Regex sensible a mayúsculas

"ABC123" -cmatch "ABC"

-contains

Contiene un valor (en colecciones)

@(1,2,3) -contains 2

Otros operadores útiles:

Operador
Significado
Ejemplo

-notcontains

No contiene el valor

@(1,2,3) -notcontains 4 → $true

-in

El valor está en la colección

2 -in @(1,2,3) → $true

-notin

El valor no está en la colección

4 -notin @(1,2,3) → $true

-is

Es del tipo especificado

"hola" -is [string]

-isnot

No es del tipo especificado

123 -isnot [string]

Bucles

Bucle "FOR"

Bucle "WHILE"

Bucle "FOREACH"

Arrays

Declaración

Array simple con varios elementos

Usando el operador @()

Array vacío

Trabajo

Acceder a elementos del array

Agregar elementos a un array

Array de diferentes tipos de datos

Iterar sobre un array

Comprobar si contiene un elemento

Array multidimensional

Active Directory

Cargar el módulo de Active Directory necesario para usar cmdlets.

Leer un archivo .csv y convierte cada fila en un objeto PowerShell.

Eliminar espacios en blanco al principio y final del texto. .Trim() es un método de la clase [string].

Compruebar si una cadena está vacía, es nula o contiene solo espacios.

Busca una unidad organizativa en Active Directory. Parámetros clave:

  • -LDAPFilter "(name=$nombre)": busca por nombre.

  • -SearchBase $dominio: define el contexto donde buscar.

  • -SearchScope Subtree: busca en todos los niveles dentro del SearchBase.

Crea una nueva unidad organizativa en AD. Parámetros clave:

  • -Name: nombre de la nueva UO.

  • -Path: ruta LDAP completa donde crearla.

  • -ProtectedFromAccidentalDeletion $false: permite borrar la UO sin cambiar propiedades de protección.

Verifica si una ruta (archivo o carpeta) existe.

Elimina archivos o carpetas.

Busca grupos de Active Directory. Párametros clave:

  • -LDAPFilter "(cn=...)": busca por nombre común del grupo (CN).

  • -SearchBase: limita la búsqueda a una UO específica.

  • -ErrorAction SilentlyContinue: oculta errores si el grupo no se encuentra.

Crea un nuevo grupo en Active Directory. Párametros clave:

  • -Name: nombre del grupo.

  • -GroupScope Global: ámbito del grupo (Global, Universal, DomainLocal).

  • -GroupCategory Security: tipo del grupo (Security o Distribution).

  • -Path: UO donde se crea.

Agrega texto a un archivo (sin sobrescribir).

Declara los parámetros que el script recibirá cuando se ejecute.

Busca usuarios en Active Directory. Parámetros clave:

  • -Filter "SamAccountName -eq '$id'": busca por nombre de cuenta (ID de usuario).

  • -ErrorAction SilentlyContinue: oculta errores si no se encuentra.

Crea un nuevo usuario en Active Directory. Parámetros clave:

  • -SamAccountName: nombre de inicio de sesión.

  • -Name: nombre completo.

  • -GivenName: nombre de pila.

  • -Surname: apellido.

  • -UserPrincipalName: dirección de correo electrónico (tipo usuario@asix.local).

  • -Path: ruta LDAP (unidad organizativa).

  • -AccountPassword: contraseña (en formato seguro).

  • -Enabled $true: cuenta habilitada.

  • -ChangePasswordAtLogon $true: fuerza cambio de contraseña en primer inicio.

Convierte una cadena de texto a formato seguro (SecureString) para que pueda usarse como contraseña.

Agrega un usuario a un grupo. Parámetros clave:

  • -Identity: grupo de destino (objeto o nombre).

  • -Members: nombre de usuario (SamAccountName).

Convierte el DN del dominio (DC=ASIX,DC=LOCAL) a un formato de dominio tradicional (asix.local).

  • Uso: Construir el UserPrincipalName.

Last updated