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:
excelente cumple su objetivo, muchas gracias
Publicar un comentario