Durante la impartición de cursos y en las consultorías realizadas a nuestros clientes, veo que los técnicos de sistemas, los cuáles ahora se están encargando de la parte de Office 365, tienen totalmente olvidado power shell, ya sea por desconocimiento de que es, como porqué les da un especial respeto la parte de programación con PowerShell. 

Por ello, os dejo algo de código de PowerShell básico, y comentado por mi, de las cosas más habituales de Office 365, o por lo menos, esos primeros pasos. 

La herramienta que utilizaremos es PowerShell ISE, dad a vuestro logotipo de Windows y escribid Powershell, veréis el ejecutable, para poder instalar módulos y cambiar la política de ejecución, necesitaréis ejecutarlo como administrador: 

Powershell_ise
Busqueda en windows Powershell_ISE

Ésta herramienta nos permite escribir, guardar nuestros scripts, ejecutar el script completo (F5), ejecutar una línea del código (F8), y ver los comandos disponibles.  

Todo lo que viene a continuación, lo podéis copiar en vuestro Powershell ISE para hacer las pruebas que necesitéis, os recomiendo que hagáis una cuenta de prueba de Office 365 y no hagáis vuestras acciones en producción. 

En el curso MS100, hacemos powershell para diferentes tareas, cada vez que lo utilicéis, veréis la importancia de tenerlo presente para vuestras acciones en el día a día. 

#Preparamos el entorno  

# Descargamos e instalamos el Microsoft Online Services Sign-In Assistant for IT Professionals RTW  

# URL: https://aka.ms/AA6zxrs 

  

#Intro powershell 

#VERBO-NOMBRE 

# DEFINIR ALGO: SET-ALGO 

# CREAR ALGO: NEW-ALGO 

# AÑADIR ALGO: ADD-ALGO 

# COGER INFORMACIÓN: GET-ALGO 

# Permite programar, tenemos toda la parte de bucles, condicionales, etc. 

# Esta encarado a objetos, por ejemplo: get-aduser --> me va a devolver todos los usuarios del directorio activo 

# y sus propiedades. 

  

# Para hacer las ejecuciones: 

# seleccionamos o nos posicionamos en la línea y le damos a F8, o al botón de al lado del play 

  

#DEFINIMOS VARIABLES GLOBALES, COMO POR EJEMPLO EL DOMINIO, USUARIO ADMINISTRADOR, CONTRASEÑA 

$Usuario = "admin@nuestrodominio.com" 

$Contraseña = ConvertTo-SecureString "Nuestracontraseña" -AsPlainText -Force 

$Credenciales = New-Object System.Management.Automation.PSCredential -ArgumentList ($usuario, $contraseña) 

$dominio = "@nuestrodominio.com" 

  

#Comprobamos la política de ejecución, para poder ejecutar scripts remotos no firmados con certificados de confianza 

# es importante volverla a poner como allsgined una vez acabemos 

# Set-ExecutionPolicy allsigned -Force 

# lo ponemos con un if, y si no es unrestricted, lo pondrá 

$politicaactual=Get-ExecutionPolicy #guardamos el estado actual en una variable 

  

  

if ($politicaactual -cnotcontains "unrestricted"){ 

    Set-ExecutionPolicy Unrestricted -force #la ponemos en unrestricted si no lo era 

} 

  

#Instalamos el módulo de Office 365 

Install-Module MSOnline 

  

#Instalamos el módulo de Azure Active Directory 

Install-Module AzureADPreview 

  

#Conectamos al Azure Active Directory con las credenciales guardadas 

Connect-AzureAD -Credential $Credenciales 

  

#Conectamos a office 365 con las credenciales guardadas 

Connect-MsolService -Credential $Credenciales 

  

#Ver los usuarios y exportarlos en un csv 

Get-AzureADUser | select  DisplayName,GivenName,UserPrincipalName | Export-Csv -Delimiter ";" -Path "c:\getaduser.csv" -Encoding UTF8 

  

#Ver los grupos eliminados 

Get-AzureADMSDeletedGroup 

  

#Restaurar un grupo eliminado 

Restore-AzureADMSDeletedDirectoryObject -Id indicamosElIdDelGrupo. 

  

#Mostraremos los grupos de Office 365 

Get-MsolRole 

#Si queremos mostrar los grupos por pantalla y que nos lo deje seleccionar y poner el valor en una variable 

$rolseleccionado=Get-MsolRole | Out-GridView -OutputMode Multiple -Title "Grupos Office 365" 

$rolseleccionado 

  

#Si queremos asignar el grupo seleccionado a alguien: 

Add-MsolRoleMember -RoleName $rolseleccionado.name -RoleMemberEmailAddress "usuario@dominio.com" 

  

#Usuarios de un rol 

$rolseleccionado=Get-MsolRole | Out-GridView -OutputMode Multiple -Title "Grupos Office 365" 

Get-MsolRoleMember -RoleObjectId $rolseleccionado.ObjectId | Out-GridView 

  

#Licencias de nuestro office 365 

Get-MsolAccountSku  

  

#seleccionamos un usuario y una licencia 

$usuarioseleccionado = Get-MsolUser | Out-GridView -OutputMode Multiple -Title "Usuario a asignar licencia" 

$licenciaseleccionada = Get-MsolAccountSku | Out-GridView -OutputMode Multiple -Title "Selecciona licencia" 

#asignaremos localizacion España si está en blanco 

if ($usuarioseleccionado.UsageLocation -eq $null){ 

       Set-MsolUser -UserPrincipalName $usuarioseleccionado.UserPrincipalName -UsageLocation "ES" 

} 

  

#Asignamos la licencia al usuario seleccionado 

Set-MsolUserLicense -UserPrincipalName $usuarioseleccionado.UserPrincipalName -AddLicenses $licenciaseleccionada.AccountSkuId 

  

#Comprobamos el usuario 

Get-MsolUser -UserPrincipalName $usuarioseleccionado.UserPrincipalName | Select userprincipalname,licenses,usagelocation 

  

#vamosa a quitar las licencias 

$usuarioseleccionado = Get-MsolUser | Out-GridView -OutputMode Multiple -Title "Usuario a asignar licencia" 

$licenciaseleccionada = $usuarioseleccionado.Licenses | select AccountSkuId | Out-GridView -OutputMode Multiple -Title "Licencia a quitar" 

Set-MsolUserLicense -UserPrincipalName $usuarioseleccionado.UserPrincipalName -RemoveLicenses $licenciaseleccionada.AccountSkuId 

Como podéis ver, PowerShell puede realizar tantas cosas como creatividad y ganas de programar tengamos, podéis ver más PowerShell en los diferentes cursos de Microsoft oficiales.