PDA

Ver la Versión Completa : Agregar y eliminar usuarios desde otra Pc


trohan
26-01-2008, 15:47:09
Existe la posibilidad de poder crear usuarios desde una Pc a otra y a la vez poder agregar a estos a algun grupo, ya sea administradores o a cualquier otro????

aeff
28-01-2008, 16:58:16
saludos!!

bueno, mira, te voy a dar una idea, claro, para esto debes hacer un programita ¿¿no???,
es un método bastante "loco" pero da resultados!!!

con Windows XP, viene una aplicación llamada Net.exe, la cual te permite añadir usuarios, grupos etc... en la PC, sus commandos son mas o menos estos:

para añadir usuario... net.exe user /add "nombre de usuario" "password"
para eleiminar usuario... net.exe user /del "nombre de usuario"

-> por ejemplo: net.exe user /add AEFF lapasswordloca

ahora, para agregar este usuario o cualquier usuario a un grupo determinado, podemos hacerlo de la siguiente forma:

-> por ejemplo: net.exe localgroup /add Administradores AEFF

es decir, la estrucura del comando es la siguiente: net.exe localgroup /add "grupo" "usuario"

nota: cada vez que creas un usuario por defecto es miembro de "Usuarios" o restringido como gustes decirle, por eso te recomiendo que cada vez que añadas uno lo quites del grupo de "Usuarios" y lo coloques en el de los adminsitradores, si es que quieres que sea administrador:

-> por ejemplo, ya creado el usuario "AEFF" ¿ok?:
1- net.exe localgroup /add Administradores AEFF [ /b] lo pongo administrador
2- [b]net.exe localgroup /del Usuarios AEFF lo quito de usuarios <restringidos>

...

ahora, ya te explique como hacer para crear el usuario ... ahora viene la parte de hacerlo remotamente...

primero que todo, debes tener en la PC remota un programa que responda a tus órdenes, es decir, un programa que le mandes a crear el usuarios tu mismo cuado tu quieras y que le digas el Nombre del usuario, la password y el grupo:

para eso, haces dos aplicaciones, una Cliente y una Servidor, la Servidor estará en la PC remota y la Cliente es la que enviará los comandos a la Servidor.

Para este fin tienes en Delphi unos cuantos componentes, para la Servidor usas el TServerSocket de la paletta "Internet" y para la cliente el TClientSocket de esa misma paletta,

*explicarte como es que funcionan estos componentes ya es otra historia, te recomiendo que hagas otro hilo en el club...*

entonces, lo que harás con la aplicación Cliente enviarle a la Servidor una cadena que tendrá el nombre de usuario, la password y el grupo, y cuando la servidor reciva esta cadena, la desglosa, en una variable colocas el username, en otra la password y en otra el grupo, y lo que te queda es crearlo, para esto usas al aplicacion Net.exe, de la forma siguiente:


...
uses ShellApi;
...

var
vUserName, vPassword, vGrupo: string;
begin
... le asignas a las variables sus respectivos valores, y luego...
ShellExecute(0, nil, 'Net.exe', PChar('user /add ' + vUserName + ' ' + vPassword), nil, SW_HIDE);
ShellExecute(0, nil, 'Net.exe', PChar('localgroup /add ' + vGrupo + ' ' + vUserName), nil, SW_HIDE);
ShellExecute(0, nil, 'Net.exe', PChar('localgroup /del Usuarios' + vUserName), nil, SW_HIDE);
...




bueno, eso es casi todo el trabajo...

*** espero que te sirva al menos de idea igual que a mi, porque si no se ejecutan estos comandos en una session administradora no se añaden los usuarios *** asi que tienes que pillar al administrador y soltarle la aplicación Servidor en su sessión... bueno,

suerte!!

saludos!

aeff
28-01-2008, 17:03:49
ahh!! para averiguar como es que funcionan los componentes "TServerSocket" y "TClientSocket" no es necesario crear otro hilo, has una búsqueda en el club que aqui hay información sobre ellos por cantidad...

saludos!

trohan
28-01-2008, 19:07:30
AEFF te agradezco mucho tu extensa explicacion, realmente espero que me sirva, ya habia oido hablar de estos componentes TServerSocket y eso, pero guardaba la esperanza de que de alguna manera se pudiera hacer sin usar un cliente, ya que por ejemplo para hacerlo desde mi maquina uso el comando mmc. Pero bueno ya que no queda mas remedio tendre que hacerlo asi y con la explicacion que me has dado espero que pinche OK. Un saludo y gracias nuevamente.

fjcg02
29-01-2008, 07:59:12
Hola,
para hacer lo que dices, se puede utilizando la consola de tu propio equipo. Solo tienes que tener conectividad.
1.- Mapea una unidad al equipo en el que quieras crear el usuario.
2.- Con el boton derecho sobre mi pc, selecciona administrar. Se abre tu ventana de gestión de tu pc: usuarios, dispositivos, discos, recursos compartidos, ... También puedes elecutar directamente compmgmt.msc
3.- Selecciona el menu acción- conectar con otro equipo, y ya puedes hacer lo qe quieres. Lógicamente, hay ramas de la carpeta a las que no puedes acceder, pero para lo que quieres, te vale.

Suerte y saludos

aeff
29-01-2008, 17:58:55
si!, y cuando intento añadir un nuevo usuario no tengo acceso, ¿por que sera?, por que no soy administrador de la PC en la que estoy sentado o porque la session que esta remotamente abierta en la otra PC no tiene privilegios?

alguien me puede decir?

aeff
29-01-2008, 18:01:39
otra pregunta colegas?
no se puede obtener estas informaciones a traves de un programa en Delphi, a traves de APIs o algo asi que me resuelva estas informaciones de la PC remota?

saludos!

trohan
29-01-2008, 22:51:01
Claroamigo Fj, eso que hababa de mmc, era un ejemplo que daba para arumentar elporque imagine que quizas se pudiera obtener la nformacion de la maquina sin necesidad de tener que instalar un cliente manualmente maquina por maquina. De hecho el Dame ware no necesita que vaya maquina por maquina haciendolo, remotamente el copia los ficheros y en la pc cliente los ejecuta eso es lo que quisiera hacer, por eso tuve esperanza de hayar algo similar

fjcg02
30-01-2008, 07:09:17
si!, y cuando intento añadir un nuevo usuario no tengo acceso, ¿por que sera?, por que no soy administrador de la PC en la que estoy sentado o porque la session que esta remotamente abierta en la otra PC no tiene privilegios?

alguien me puede decir?

La respuesta es SI. Debes conectarte al pc al que le quieres añadir los usuarios con un usuario con el que tengas privilegios suficientes. Esto lo haces en la conexión de la unidad, donde puedes identificar el usuario
Ejemplo. Abres una sesión de comandos ( ejecutar cmd) y pones
net use * \\equiporemoto\c$ /user:equiporemoto\administrador
Te pedirá la clave del usuario local del equiporemoto indicado , y después, al abrir la consola, todo lo que hagas será con ese usuario.

Por otro lado, si quereis ejecutar aplicaciones, scripts , etc de manera remota, se puede utilizar las pstools. psexec permite ejecutar en equipos remotos cualquier archivo. Creo que lo que se quiere ejecutar debe estar en el equipo remoto, pero menos es nada. Nosotros usamos mucho psinfo, ya que ofrece desde tu propio puesto información de las caracteristicas del equipo como memoria, procesador, sistema operativo, sw instalado, ... Por otro lado, de este tipo de programas hay muchos.

Espero haberos ayudado.

Un saludo

trohan
30-01-2008, 14:59:19
Amigo Fj, muchas gracias por el aporte que nos estas dando. Pero quisiera que me comentaras un ultimo detalle. En cuanto a lo ultimo que dijiste sobre ejecutar scripts, etc, remoto. Eso necesariamente necesita que se le diga el usuario con que se va a correr o serviria lo que yo intento hacer???, que ese usuario administrador que esta en todas las maquinas y que es con el que estoy logueado en la mia, sea tomado automaticamente por el programa(el que quiero hacer) como el usuario admin con el que quiero que corra la aplicacion cliente, sin necesidad de tener que especificarlo. NO se si me entiendes, lo que quiero hacer es que yo corra el programa en mi maquina y como el usuario(local o de dominio) mio es admin en todas las demas, la autentificacion quisiera que se hiciera con este, o lo que es igual Doble click en el programa y andando. Un saludo

fjcg02
30-01-2008, 15:03:46
Usage: psexec [\\computer][-u user [-p psswd]][-s|-e][-i][-c [-f|-v]][-d][-<prio
rity>][-a n,n,...] cmd [arguments]
computer Direct PsExec to run the application on the remote
computer. If you omit the computer name PsExec runs
the application on the local system.
-u Specifies optional user name for login to remote
computer.
-p Specifies optional password for user name. If you omit this
you will be prompted to enter a hidden password.
-s Run the remote process in the System account.
-e Loads the specified account's profile.
-i Run the program so that it interacts with the desktop on the
remote system.
-c Copy the specified program to the remote system for
execution. If you omit this option the application
must be in the system path on the remote system.
-f Copy the specified program even if the file already
exists on the remote system.
-v Copy the specified file only if it has a higher version number
or is newer on than the one on the remote system.
-d Don't wait for process to terminate (non-interactive).
-priority Specifies -low, -belownormal, -abovenormal, -high or
-realtime to run the process at a different priority.
-a Separate processors on which the application can run with
commas where 1 is the lowest numbered CPU. For example,
to run the application on CPU 2 and CPU 4, enter:
"-a 2,4"
program Name of application to execute.
arguments Arguments to pass (note that file paths must be
absolute paths on the target system).

You can enclose applications that have spaces in their name with
quotation marks e.g. psexec \\marklap "c:\long name app.exe".
Input is only passed to the remote system when you press the enter
key, and typing Ctrl-C terminates the remote process.

If you omit a user name the process will run in the context of your
account on the remote system, but will not have access to network
resources (because it is impersonating). Specify a valid user name
in the Domain\User syntax if the remote process requires access
to network resources or to run in a different account. Note that
the password is transmitted in clear text to the remote system.

Error codes returned by PsExec are specific to the applications you
execute, not PsExec.



Para muestra un botón. Puedes ejecutarlo con el usuario con el que estás conectado ( por ejemplo el administrador del dominio ) o con uno que especifiques ( parametro -u).

Saludos

trohan
31-01-2008, 16:19:19
Ademas tambien quisiera que fuera el codigo como tal para hacer esto y no un progrma ya hecho, ya que mi interes es hacer uno similar. Ojala y alla alguna forma

trohan
31-01-2008, 16:20:06
Ademas tambien quisiera que fuera el codigo como tal para hacer esto y no un progrma ya hecho, ya que mi interes es hacer uno similar. Ojala y alla alguna forma de acceder a esto.