como puedo usr el psexec para cerra la sesion (De manera remota).

Iniciado por P3NDULO, 27 Marzo 2014, 17:02 PM

0 Miembros y 1 Visitante están viendo este tema.

P3NDULO

Buenas...

Tengo esta codigo...


@echo off
color 17
echo. *****************************************************
echo.
set /p equipo= Nombre de La maquina:
@echo %equipo%
echo.
echo. *****************************************************
set /p nombre= Nombre del usuario:
@echo. %nombre%
echo psexec.exe \\%equipo% net localgroup Administradores %nombre%@dominio /add > usuario.bat
echo psexec.exe \\%equipo% net localgroup Administradores %nombre%@dominio /add>> Listado.txt
:: El Listado.txt es para tener la relacion de todos los equipos, y correr la lista cada 3 o 4 horas.
pause.
echo. *****************************************************
echo.
call usuario.bat
echo.
echo. ******************************************************
exit


Esto lo que hace es llamar al archivo .bat.. con el codigo de Psexec ya con todo los dtos, que vamos agregando...

Con eso puede colocar al usuario como administrador local, para que este puede hacer un grupo de procesos que utilizan algunos .dll....

Pero para que estos cambios surtan efecto, hay que cerrar la sesion, y los usuario uno le dice cerrar secion y unos reinician el equipo, otros pagana el monitos, otoros cierran el programa que no pueden ejecutar sin pribilegios, ect... por eso quisiera hacerlo autamaticamente... pero las intruccion que me funciona es para reiniciar.

Tengo aca un codico que lo uso local. cundo no me puedo conectar remotamente y no funciona el psexec..


@echo off
title BY ***CSI ****
::-------- Pasar usuario a administrador
net localgroup Administradores nombre.apellido@dominio /add
pause
::-------- Listado de usuarios
net user
pause
::-------- Reinicio de sesion
msg * Se va  a reiniciar la sesión
shutdown -f -l


Entonces la instrucion shutdown -f -l que meto en psexec me arroja un error..


:: Este es que me da error
psexec.exe \\%equipo% shutdown -f -l
***********************************
::Esta es la que funciona la de reinicio.
psexec.exe \\%equipo% shutdown -r


Que cambio podria hacer para que al ejecutar el bat, y agregue al usuario como administrador, cierre la cesion, y no duro los 60 segundos predeterminados que tiene de espera.

Gracias... :silbar:

fe80Grau

#1
Resuelvo el problema;
Si ejecutas el psexec que cierra la sesión de la siguiente forma te funcionará
psexec.exe -i \\%equipo% shutdown.exe -l

P3NDULO

Bueno hice esto.
Seria la version 1.2 jejejeje...

Primero solicito la ip de la maquina y saco el nombre de la maquina con este programita:
que esta en .vbs

'-----------------------------------------'
'HACER PING A UNA DIRECCION Y MOSTRAR EL NOMBRE DEL EQUIPO
'-----------------------------------------'
'Pedir la dirección'
titulo ="<CSI> Buscar Nombre de Equipo"
EstaIP=inputbox("Introduzca IP: ", titulo)
'-----------------------------------------'
'Definimos y Creamos objeto para ejecutar comandos DOS
'Se puede usar shell:  Shell "cmd.exe /c move c:\archivo.txt c:\carpeta\"
'si quieres ejecutar varios comandos separalos con &&.
'"/c", para que pueda ejecutar los comandos que le siguen,
'el resultado de la ejecución se pasa a un archivo .txt que está en la raíz
Set MiComandoDos = CreateObject("Wscript.Shell")
MiComandoDos.run "cmd.exe /c ping -a "&EstaIP&">C:\Ping.txt",0, true
'-----------------------------------------'
'Definimos y Creamos objeto para usar archivos
'Modos de abrir un archivo: 1.- Lectura, 2.- Escritura (ini), 8.- Append (fin) + true'
Set MiArchivo =  CreateObject("Scripting.filesystemobject")
Set BuscarEn = MiArchivo.opentextfile("C:\Ping.txt",1)
'Crear un Arreglo para capturar las lineas del archivo, nos interesa la segunda
Dim CadaLinea(13)
i = 0
do Until BuscarEn.atEndOfStream
   CadaLinea(i)= BuscarEn.Readline
   i=i+1
Loop
BuscarEn.close
'-----------------------------------------'
'Buscar Nombre del Equipo en la segunda linea, es la cuarta palabra hasta el punto
m = mid(CadaLinea(1),17,(Len(CadaLinea(1))-38))
'n = instr(1,m,".")
n = instr(1,m," ")
NomPC=left(m,n-1)
If len(NomPC)> 3 then
   'y=msgbox("Ping realizado al siguiente Equipo:... "+Chr(13)+CadaLinea(1)+ _
   '     Chr(13)+"El Nombre del Equipo es: >>> "+NomPC+" <<<",64,titulo)
   x=inputbox("Puede copiar el nombre"+chr(13)+"si desea utilizarlo en otra aplicación" _
          ,titulo,NomPc)
else
   y=msgbox("No se puede encontrar nombre; IP parece ser no válida "+Chr(13)+ _
         "Verifique y ejecute de nuevo el programa.",48,titulo)
end if



Luego con el nombre de la maquina ejecuto este: en bat


@echo off
color 17
echo. *****************************************************
echo.
set /p equipo= Nombre de La maquina:
@echo %equipo%
echo.
echo. *****************************************************
echo.
set /p nombre= Nombre del usuario:
@echo. %nombre%
echo psexec.exe \\%equipo% net localgroup Administradores %nombre%@dominio /add > usuario.bat
echo psexec.exe -i \\%equipo% shutdown.exe -l > usuario.bat
echo psexec.exe \\%equipo% net localgroup Administradores %nombre%@dominio /add>> Listado.txt
pause.
echo. *****************************************************
echo.
call usuario.bat
echo.
echo. ******************************************************
exit


Con ese guardo los datos en un txt, para realizr eso al dia siguiente con una tarea programada jejejeje...
Lo unico malo es que les digo a los usuarios Cierra la secion de Windos... y lo que hacen es reiniciar el quipo", y por politacas de la empresa pierden todos los pribilegios de adminisrador que les coloque.
Utilizo el codigo que me dejo fe80Grau. pero no cierra la sesion. No sabria decirles el porque...
Si hay otra manera pues se los agradezco. gracias por la ayuda.