Crear cuenta de servicio local con PowerShell

lunes, 24 de agosto de 2015


En algunas ocasiones podemos tener la necesidad de crear una cuenta de servicio local, donde claramente no tenemos Active Directory para crear una cuenta de servicio de dominio, en estos escenarios es común requerir a técnicas como por ejemplo un adaptador [ADSI], pero el título de este artículo es claro en mencionar que la creación de la cuenta de servicio es con PowerShell, y mejor aún la podemos crear en equipos remotos ¿cómo es posible? veamos a continuación.

Actualmente no disponemos de un módulo de PowerShell que lo permita, pero en el Script Center de TechNet se encuentra una buena solución, un ingeniero de Microsoft ha desarrollado un módulo de PowerShell, que en su interior también hace uso del adaptador [ADSI], pero encapsula todo en el código para que no tengamos que llevar a cabo los complejos pasos que ello involucra, sino que en su lugar usaremos sencillos y amigables command lets o cmdlets.

Para usar el módulo debemos realizar los siguientes pasos:

1. Ingresar a la siguiente URL donde encontraremos el código del Script:
     https://gallery.technet.microsoft.com/scriptcenter/f75801e7-169a-4737-952c-1341abea5823

2. En la página encontraremos el código, seleccione y copie todo el código, el sitio no tiene un botón para descargar un archivo con el código.




3, Abrimos un editor de texto y pegamos el código copiado, en este caso usaré PowerShell ISE



4. Debemos crear un directorio llamado Local_User en el directorio de módulos

Si no conoces la ubicación del directorio de módulos, puedes averiguarlo con el siguiente comando en una consola de PowerShell

$ENV:PSModulePath

Sin embargo, si has trabajado con módulos alguna vez, sabrás que la ruta que siempre exploramos, es la siguiente:

C:\Windows\system32\WindowsPowerShell\v1.0\Modules\


Al final la carpeta de módulos debe tener una apariencia similar a la siguiente:


5. El código que tenemos en el editor debemos guardarlo con el siguiente nombre Local_User.psm1 (Nótese la extensión psm1), debemos guardar este archivo en la carpeta recién creada Local_User



Importante: El módulo y el directorio deben llamarse igual, no poner nombres diferentes.

Y esto es todo, ya estamos listos para usar el módulo, basta con ingresar a una consola de PowerShell e importar el módulo.

Import-Module Local_User


Ahora, creemos una cuenta llamada Service1 en el servidor SERVER02 

 New-LocalUser -userName Service1 -password "P@ssw0rd" -computerName SERVER02


Como podemos apreciar con una sola línea tenemos una cuenta local creada en un equipo remoto, ahora vayamos a SERVER02 a revisar.



La descripción Created by PowerShell sale de forma automática, pero podemos poner nuestra propia descripción usando el parámetro -Description

De manera predeterminada la cuenta recién creada no pertenece a ningún grupo, veamos como podemos agregar esta cuenta al grupo de Administradores por ejemplo. A continuación el comando completo.

Set-LocalGroup Service1 -computerName SERVER02 -add Administrators



El cmdlet Set-LocalGroup sirve para agregar o eliminar miembros de un grupo

Para ver la lista completa de comandos que trae el módulo podemos escribir lo siguiente:

Get-Command *-local*


Podemos excluir el último comando, como podemos ver pertenece a otro módulo.

También incorpora ayuda, así que si deseamos saber la sintaxis y ver ejemplos de cada comando, basta con invocar la ayuda. Por ejemplo podemos consultar la ayuda del cmdlet Set-LocalUserPassword que sirve para cambiar la contraseña de un usuario local.

Get-Help Set-LocalUserPassword


Esto es todo, espero les sea de utilidad. Hasta la próxima.

1 comentario:

Edgardo dijo...

excelente cumple su objetivo, muchas gracias

 

Temas por fecha

Lo más visto

Comunidad

Comunidad
Comunidad Técnica

Visitas