Administrar usuarios del dominio desde la línea de comandos de Windows Server 2022 (Parte II)
En la primera parte de este artículo aprendimos a crear cuentas de usuario desde la línea de comandos de Windows Server 2022, a obtener información sobre las cuentas, a consultar la relación de cuentas de usuario que existen en el dominio y a eliminarlas. Hoy, continuaremos con la tarea, incluyendo algunas acciones más. En concreto, las siguientes:
-
Asignar o cambiar la contraseña de una cuenta de usuario
-
Habilitar o deshabilitar una cuenta de usuario existente
-
Duplicar una cuenta de usuario existente
-
Modificar los datos de una cuenta
Hoy trabajaremos en Windows Server 2022 sin interfaz gráfica, pero todo lo explicado es completamente válido en un sistema con escritorio.
Puedes abrir fácilmente la ventana de terminal usando la combinación de teclas Windows + R y, escribiendo el siguiente comando en la ventana que aparece:
powershell
Igual que en la primera parte, realizaremos todo el trabajo de hoy utilizando cmdlets de PowerShell. Sin embargo, probablemente, al iniciar sesión con la cuenta Administrador, se habrá iniciado de forma automática la herramienta sconfig. Si este es tu caso, el primer paso será salir de la herramienta. Lo conseguiremos usando la opción 15 del menú.
A partir de aquí, comenzaremos a aplicar las diferentes ordenes…
Asignar o cambiar la contraseña de una cuenta de usuario
De forma predeterminada, cuando creamos una cuenta del modo que aprendimos en la primera parte del artículo, ésta no tendrá contraseña. Sin embargo, una cuenta del dominio debe tener asignada una contraseña, incluso cuando no pretendamos iniciar sesión con ella (por ejemplo, porque vayamos a utilizarla como plantilla).
No obstante, asignar una contraseña por primera vez a la cuenta de usuario que creamos en el artículo anterior es tan sencillo como utilizar la siguiente orden:
Set-ADAccountPassword -Identity Victor
Como ya sabemos, el argumento -Identity, permite identificar la cuenta de usuario.
En la primera parte del artículo vimos cómo utilizar la sintaxis que especifica la jerarquía completa del árbol en el que se encuentra la cuenta, para evitar errores. Algo como ‘CN=Victor,CN=Users,DC=somebooks,DC=local’.
Sin embargo, si en nuestro directorio no pueden producirse duplicidades, es decir, si no tenemos otros elementos con el mismo nombre en diferentes lugares del bosque, podemos usar la sintaxis abreviada (como ahora) .
Al hacerlo, comprobamos que el cmdlet nos muestra la jerarquía completa de la cuenta de usuario, para que podamos asegurarnos de que estamos actuando sobre la cuenta correcta. Debajo, nos solicita la contraseña actual.
Si estamos ejecutando el cmdlet como usuario normal, para cambiar nuestra propia contraseña, estaremos obligados a rellenar la contraseña actual. Si actuamos como Administrador, simplemente pulsaremos la tecla Intro.
Más abajo, deberemos escribir la nueva contraseña, como siempre por duplicado para evitar errores tipográficos.
Si está habilitada la directiva de seguridad relativa a la complejidad de las contraseñas (lo estará de forma predeterminada), deberemos cumplir los siguientes requisitos mínimos:
-
Deberá tener un mínimo de 7 caracteres
-
Estará compuesta por tres de las cuatro categorías siguientes de caracteres:
-
Letras mayúsculas.
-
Letras minúsculas.
-
Dígitos en base 10 (0 a 9).
-
Caracteres no alfabéticos (como &, >, $, !, ?, …).
Además, el sistema recordará las últimas 24 contraseñas y no podremos repetirlas, la vigencia mínima de una contraseña será 1 día y la máxima 42.
Si necesitas más información sobre el cmdlet Set-ADAccountPassword, te recomiendo que consultes la página https://learn.microsoft.com/en-us/powershell/module/activedirectory/set-adaccountpassword?view=windowsserver2022-ps.
También puedes asignar la contraseña a la vez que creas la cuenta con New-ADUser. Para lograrlo, sólo necesitas hacer uso del argumento -accountPassword, que se encarga de asignar una contraseña a la cuenta de usuario que estemos creando.
Además, usaremos el cmdlet ConvertTo-SecureString para convertir el texto de la contraseña en una cadena segura. El argumento -Force permite utilizar un texto plano en lugar de una contraseña.
La sintaxis completa quedaría así:
New-ADUser -Name Victor -GivenName Victor -Surname Genovés -Path "CN=Users,DC=somebooks,DC=local" -accountPassword (ConvertTo-SecureString -AsPlainText "Usuario.123" -Force)
Como probablemente ya hayas deducido, la contraseña que usaremos será Usuario.123
Habilitar o deshabilitar una cuenta de usuario existente
Otra de las características de las cuentas que creemos del modo que aprendimos en la primera parte del artículo, es que se encontrará deshabilitada.
Una cuenta de usuario deshabilitada no podrá iniciar sesión en el dominio, por lo que podemos utilizar esta característica con varios objetivos. Entre ellos, tenemos los siguientes:
-
Para evitar que cualquier otro usuario pueda utilizar la cuenta de un usuario que se encuentre ausente.
-
Para crear una cuenta genérica, a modo de plantilla, configurarla con todas las características necesarias, y después duplicarla para crear cuentas nuevas.
-
Para deshabilitar la cuenta Administrador y utilizar otras cuentas con privilegios administrativos limitados, para realizar la administración cotidiana.
En cualquier caso, si quieres saber si la cuenta de usuario que venimos utilizando de ejemplo está deshabilitada, basta con escribir el siguiente comando:
get-ADUser Victor -Properties Enabled
En realidad, ya usamos el cmdlet get-ADUser en la primera parte del artículo. La novedad es que, ahora, nos centramos en la propiedad Enabled.
De todos modos, además del valor de la propiedad Enabled, el cmdlet nos devuelve algunos datos complementarios para que identifiquemos la cuenta sin lugar a dudas.
Ahora que hemos comprobado que se encuentra deshabilitada (Enabled: False), si quisiéramos habilitarla, sólo tendríamos que usar la siguiente orden:
Enable-ADAccount -Identity Victor
Si volvemos a comprobar el valor de la propiedad Enabled, comprobaremos que ya está habilitada.
Si más adelante necesitáramos deshabilitarla de nuevo, bastaría con escribir lo siguiente:
Disable-ADAccount -Identity Victor
Si necesitas más información sobre el cmdlet Get-ADUser, te recomiendo que consultes la página https://learn.microsoft.com/en-us/powershell/module/activedirectory/get-aduser?view=windowsserver2022-ps.
En cuanto al cmdlet Enable-ADAccount, puedes encontrar más información en https://learn.microsoft.com/en-us/powershell/module/activedirectory/enable-adaccount?view=windowsserver2022-ps. Y para Disable-ADAccount, puedes utilizar https://learn.microsoft.com/en-us/powershell/module/activedirectory/disable-adaccount?view=windowsserver2022-ps.
Duplicar una cuenta de usuario existente
Cuando administramos un dominio, es muy frecuente disponer de una o varias cuentas de usuario, que usaremos como plantillas para crear otras cuentas diferentes. De este modo, configuraremos una sola vez las plantillas, pero de forma concienzuda, y después crearemos las nuevas cuentas a partir de ellas.
Lógicamente, en las nuevas cuentas deberemos incluir sus datos básicos, como el nombre o los apellidos. Sin embargo, evitaremos volver a configurar aspectos como el horario de conexión o los grupos a los que pertenece.
En realidad, el proceso es muy parecido al que usamos para crear una nueva cuenta, pero añadiremos el argumento -Instance para especificar la cuenta de usuario en la que debe basarse.
En definitiva, la sintaxis quedará así:
New-ADUser -Name Alfredo -GivenName Alfredo -Surname Conte -Path "CN=Users,DC=somebooks,DC=local" -Instance Victor
Modificar los datos de una cuenta
Un método muy sencillo para asignar valor a cualquier propiedad de una cuenta de usuario consiste en utilizar el cmdlet Set-ADUser. Para lograrlo, sólo tenemos que utilizar el argumento -Identity, que ya conocemos de apartados anteriores, para identificar la cuenta sobre la que intervendremos. A continuación, usaremos el argumento que identifique la propiedad que queremos modificar. Por ejemplo, para modificar el valor de la propiedad Company usaremos el argumento -Company. Para terminar, escribiremos el valor que queremos asignarle a la propiedad.
Set-ADUser -Identity Victor -Company Midas
Si el valor está formado por más de una palabra, deberemos escribirlo entre comillas.
Otro modo que tenemos de modificar los datos de una cuenta de usuario consiste en copiarlos desde una cuenta diferente. Para lograrlo, comenzaremos por crear una variable que reciba los datos de partida. Por ejemplo:
$origen=Get-ADUser -Identity Victor -Properties Company, Office
A continuación, utilizamos la variable para modificar los valores de la otra cuenta:
Set-ADUser -Identity Alfredo -Company $($origen.Company) -Office $($origen.Office)
Como ves, se utiliza sintaxis orientada a objetos para referirnos a las propiedades originales.
Si quieres comprobar el resultado, puedes volver a usar el cmdlet Get-ADUser. Así, de paso, comprobamos cómo consultar más de una propiedad al mismo tiempo:
Get-ADUser Alfredo -Properties Company,Office
Si necesitas más información sobre el cmdlet Set-ADUser, te recomiendo que consultes la página https://learn.microsoft.com/en-us/powershell/module/activedirectory/set-aduser?view=windowsserver2022-ps.
Y lo vamos a dejar aquí por hoy, para no ponernos demasiado densos. Pero, si te está pareciendo interesante, no te pierdas la tercera parte de esta serie de artículos.