Magic Quadrant™ para la gestión de acceso privilegiado 2025: Netwrix reconocida por cuarto año consecutivo. Descarga el informe.

Plataforma
Centro de recursosBlog
Cómo agregar, eliminar y cambiar usuarios y grupos locales con PowerShell

Cómo agregar, eliminar y cambiar usuarios y grupos locales con PowerShell

Sep 18, 2018

La gestión de usuarios y grupos locales con PowerShell se simplifica a través del módulo Microsoft.PowerShell.LocalAccounts, que proporciona cmdlets para crear, modificar, deshabilitar o eliminar cuentas y grupos. Los administradores pueden automatizar tareas como agregar usuarios a grupos, restablecer contraseñas o revisar membresías, al tiempo que gestionan cuentas vinculadas a Microsoft y Azure AD-linked accounts. La gestión remota a través de sesiones de PowerShell simplifica aún más la administración, aunque auditar los cambios sigue siendo esencial para la seguridad y el cumplimiento.

Para ayudar a los administradores a gestionar usuarios y grupos locales con PowerShell de manera más sencilla, Microsoft proporciona una colección de cmdlets llamada Microsoft.PowerShell.LocalAccounts. Anteriormente, tenías que descargarla e importarla explícitamente en PowerShell, además de instalar Windows Management Framework 5.1; en los sistemas operativos Windows Server 2016 y Windows 10, la colección de cmdlets se incluye como un módulo estándar.

Hay 15 cmdlets en el módulo de LocalAccounts. Puede ver la lista completa ejecutando el siguiente comando:

      Get-Command -Module Microsoft.PowerShell.LocalAccounts
      

Image
  • Add-LocalGroupMember — Agregar un usuario al grupo local
  • Disable-LocalUser —Deshabilitar una cuenta de usuario local
  • Enable-LocalUser — Activar una cuenta de usuario local
  • Get-LocalGroup — Ver preferencias de grupo local
  • Get-LocalGroupMember — Vea la lista de todos los miembros del grupo local
  • Get-LocalUser — Consulte las preferencias de una cuenta de usuario local
  • New-LocalGroup — Crear un nuevo grupo local
  • New-LocalUser — Crear una nueva cuenta de usuario local
  • Remove-LocalGroup — Eliminar un grupo local
  • Remove-LocalGroupMember — Eliminar un miembro de un grupo local
  • Remove-LocalUser — Eliminar una cuenta de usuario local
  • Rename-LocalGroup — Renombrar un grupo local
  • Rename-LocalUser — Renombrar una cuenta de usuario local
  • Set-LocalGroup — Cambie la configuración de un grupo local
  • Set-LocalUser — Cambie la configuración de la cuenta de un usuario local

Gestión de cuentas de usuario locales con PowerShell

Veamos cómo puedes utilizar estos comandos para realizar tareas comunes relacionadas con la gestión de usuarios locales en un ordenador con Windows 10.

Listando usuarios y sus propiedades con PowerShell

Primero, obtengamos una lista de todas las cuentas de usuario locales en la máquina. Usaremos el cmdlet Get-LocalUser:

      Get-LocalUser
      

Image

Como puede ver, tenemos dos cuentas de usuario locales, y una de ellas está deshabilitada (la que tiene “False” en la columna “Enabled”).

Si desea mostrar todas las propiedades y sus valores para una cuenta de usuario local, necesita usar el cmdlet Get-LocalUser con los siguientes parámetros:

      Get-LocalUser -Name ‘guest’ | Select-Object *
      

Image

Para obtener el valor de un atributo específico de una cuenta de usuario local, escriba su nombre después del parámetro Select-Object. En este ejemplo, queremos saber el valor del atributo PasswordLastSet para la cuenta con el nombre de usuario “administrator”:

      Get-LocalUser -Name ‘administrator’ | Select-Object PasswordLastSet
      

Image

Creando un usuario local con PowerShell

Creemos un nuevo usuario con la ayuda del cmdlet New-LocalUser. Este cmdlet puede crear los siguientes tipos de cuentas de usuario:

  • Cuentas de usuario locales de Windows
  • Cuentas de Microsoft
  • Cuentas de Azure Active Directory

Al crear una cuenta de usuario local, nunca escriba la contraseña como texto plano; siempre conviértala en una cadena segura utilizando el parámetro ?AsSecureString o ?ConvertTo-SecureString. Aquí está el comando para crear una nueva cuenta de usuario local:

      $UserPassword = Read-Host –AsSecureString
New-LocalUser "Netwrix" -Password $UserPassword -FullName "Netwrix" -Description "CompleteVisibility"
      

En un entorno de Windows 10, los usuarios pueden autorizarse bajo sus cuentas de Microsoft, así que podemos crear una nueva cuenta de usuario local que se vincule con las credenciales de una cuenta de Microsoft. Utilice el siguiente script para hacer esto (tenga en cuenta que no necesita escribir la contraseña porque está almacenada en la nube de Microsoft):

      New-LocalUser -Name "MicrosoftAccountSomeAccount@outlook.com" -Description "Microsoft Account"
      

Para crear una cuenta local que se vincule a su Azure AD, utilice el siguiente comando:

      New-LocalUser -Name "AzureADNetwrix@enterprise.com" -Description "Azure AD Account"
      

Cambiar la contraseña o las propiedades de la contraseña de un usuario local con PowerShell

Para cambiar la contraseña de una cuenta de usuario local, necesitamos usar el cmdlet Set-LocalUser. Cambiemos la contraseña del administrador local:

      $UserPassword = Read-Host –AsSecureString
Set-LocalUser -Name Administrator -Password $UserPassword –Verbose
      

Para establecer la opción Password never expires a un usuario local con PowerShell, necesitamos ejecutar el siguiente script:

      Set-LocalUser -Name Netwrix –PasswordNeverExpires $False
      

Eliminando una cuenta de usuario local con PowerShell

Para eliminar una cuenta de usuario local, necesita utilizar el cmdlet Remove-LocalUser:

      Remove-LocalUser -Name Netwrix -Verbose
      

Gestión de Grupos Locales con PowerShell

Ahora dirijamos nuestra atención de los usuarios locales a los grupos locales.

Revisando grupos locales con PowerShell

Primero, obtengamos una lista de todos los grupos en nuestro Windows Server:

      Get-LocalGroup
      

Image

Añadiendo un grupo local con PowerShell

Ahora vamos a crear un nuevo grupo:

      New-LocalGroup -Name 'Netwrix Users' -Description 'Netwrix Users Group'
      

Añadir usuarios a un grupo local con PowerShell

Para agregar un usuario (o un grupo) a un grupo local, necesitamos usar el cmdlet Add-LocalGroupMember. Por ejemplo, supongamos que queremos agregar usuarios al grupo de Administradores locales, pero no queremos agregarlos uno por uno. Vamos a agregar un grupo a los Administradores locales, a saber, el grupo “Netwrix Users”:

      Add-LocalGroupMember -Group 'Administrators' -Member ('Netwrix',’Netwrix Users') –Verbose
      

Si su computadora o servidor es parte del dominio, también puede agregar cuentas de dominio y grupos a grupos locales para otorgar a esos usuarios derechos locales especiales en el servidor. Agréguelos utilizando el formato “DomainNameUser” (para un usuario) o “DomainNameDomain Group” (para un grupo).

Visualización de la membresía de un grupo en particular con PowerShell

Ahora vamos a enumerar todos los miembros de un grupo local en particular:

      Get-LocalGroupMember -Group 'Netwrix Users'
      

Image

Como puede ver, el comando muestra todas las cuentas locales y grupos que son miembros del grupo “Netwrix Users”. Aunque aquí solo se enumeran cuentas y grupos locales, este comando también mostrará cualquier usuario y grupo de dominio, así como todas las cuentas de Microsoft y Azure AD.

Visualización de todos los grupos de los que un usuario es miembro utilizando PowerShell

Para listar todos los grupos de los que un usuario en particular es miembro, ejecutaríamos el siguiente script:

      foreach ($LocalGroup in Get-LocalGroup)
{
if (Get-LocalGroupMember $LocalGroup -Member 'Guest' –ErrorAction SilentlyContinue)
{
$LocalGroup.Name
}
}
      

Image

Eliminando un grupo local con PowerShell

Para eliminar una cuenta de usuario local de un grupo, necesita usar el cmdlet Remove-LocalGroupMember:

      Remove-LocalGroupMember -Group 'Netwrix Users' –Member 'guest'
      

Gestión remota de usuarios y grupos locales con PowerShell

Si desea administrar cuentas de usuario locales y grupos de forma remota, necesita conectarse a las estaciones de trabajo remotas a través de WinRM utilizando los cmdlets Invoke-Command y Enter-PSSession. Por ejemplo, si queremos mostrar la membresía del grupo Admin local de forma remota en múltiples computadoras, necesitamos ejecutar el siguiente script:

      $search = new-pssession -computer pcname1,pcname2,pcname3
invoke-command -scriptblock {Get-LocalGroupMember -Group 'Administrators'} -session $search -hidecomputername | select * -exclude RunspaceID | out-gridview -title "LocalAdmins"
      

Como puede ver, es bastante fácil administrar grupos y usuarios locales a través de PowerShell, pero para garantizar la seguridad, el cumplimiento y la continuidad del negocio, es esencial auditar todos estos cambios. Para aprender sobre la configuración de la auditoría nativa, por favor consulte la Windows Server Auditing Quick Reference Guide.

Compartir en

Aprende más

Acerca del autor

Asset Not Found

Jeff Melnick

Director de Ingeniería de Sistemas

Jeff es un ex Director de Ingeniería de Soluciones Globales en Netwrix. Es un bloguero, orador y presentador de Netwrix desde hace mucho tiempo. En el blog de Netwrix, Jeff comparte lifehacks, consejos y trucos que pueden mejorar drásticamente tu experiencia en la administración de sistemas.