Estoy arrancando una MVP de un modelo de negocio que intenta cubrir el problema de escasez de una cuenta de coste limitado para mis alumnos, en donde puedan hacer las prácticas y laboratorios que requiere el estudio de las Certificaciones de Azure.
Y he realizado un pequeñito script en powershell para poder hacer dos operaciones masivas de forma sencilla:
Ponerle una contraseña específica a todos los usuarios que tengo en la suscripción que comparten mis alumnos durante las clases, y activar y desactivar las cuentas (para cuando se acaban las clases, que no me generen gastos).
Vamos al lío..
Un pequeña sábana para dos lineas
Si algo nos podemos quejar de la excelente herramienta que es PowerShell (versión 5.x) es que hay que escribir mucho para poder realizar las operaciones. En este caso lo primero que debo hacer es establecer la conexión con mi cuenta de Azure y definir cual de mis tropecientas suscripciones es la que voy a utilizar.
Login-AzureRmAccount
$suscriptionId = "d1axxx-cxxx-4xxx-8xxxx-exxxxxxxxc"
Set-AzureRmContext -SubscriptionId $suscriptionId
Lo siguiente es conectarme con mi Directorio Activo de Azure para lo cual tengo que lanzar el siguiente script.
$currentAzureContext = Get-AzureRmContext $tenantId = $currentAzureContext.Tenant.Id $accountId = $currentAzureContext.Account.Id Connect-AzureAD -TenantId $tenantId -AccountId $accountId
Ahora voy a crear una variable de tipo SecureString en donde almacenar mi contraseña en texto plano, de forma segura. Ya que solo en este formato lo voy a poder asignar a la cuenta del usuario.
$securepassword = ConvertTo-SecureString -String 'AzurePa$$w0rd' -AsPlainText -Force
Y ahora si que si, me hago un bucle por el directorio activo de la suscripción asignando la contraseña; seguido a continuación con la activación o bloqueo de la cuenta del usuario.
$usersAD = Get-AzureRmADUser Foreach($user in $usersAD) { Set-AzureADUserPassword -ObjectId $user.Id -Password $securepassword Set-AzureRmADUser -UPNOrObjectId $user.Id -EnableAccount $true }
Espero que sea de utilidad.