Estoy intentando iniciar cmd.exe en la sesión 0. Hasta ahora he hecho lo siguiente desde un símbolo del sistema elevado:
sc config UI0Detect start= auto
net start UI0Detect
Y la respuesta indica que el servicio se inició correctamente. Es en este punto que supuse que si cambiaba a la sesión 0, cmd.exe se estaría ejecutando.
Me cambio a la sesión 0 usando el siguiente comando:
rundll32 winsta.dll,WinStationSwitchToServicesSession
Esto me cambia exitosamente a la sesión 0, pero la única ventana que está disponible es la que tiene la opción de regresar a la sesión 1.
¿Cómo consigo cmd.exe para iniciar en la sesión 0?
windows-7
command-line
session
omghai2u
fuente
fuente
Respuestas:
Para iniciar cmd.exe en la sesión 0, use psexec de Sysinternals
Ahora tiene una consola ejecutándose en la sesión 0,
También puede iniciar cmd.exe en la sesión 0 y mostrar la GUI:
de esa manera, cuando cambie a la sesión 0, el cmd.exe lo estará esperando allí.
tiene tantos derechos como pueda obtener en Windows 7:
Si usa otras PsTools, recuerde usar el modificador / acceptteula:
de lo contrario, el programa muestra un cuadro de mensaje para pedirle que acepte el Eula, el programa se bloqueará porque no hay una interfaz de usuario en la sesión 0 para cerrar el cuadro de mensaje.
Para verificar que se está ejecutando en la sesión 0, puede usar qprocess:
verá su 'cmd.exe' entre todos los procesos de servicio.
fuente
-s
ejecuta comoSYSTEM
usuario y no acepta argumentos. ¿Quizás quiso decir-i 0
en el primer ejemplo y-s -i 0
en el segundo?No va a funcionar Simplemente inicia un proceso como Sistema.
Los servicios son programas escritos de una manera especial para aceptar comandos del administrador de control de servicios.
MS tiene una utilidad que permite ejecutar un programa como servicio. Se llama
Srvany
y se encuentra en las Herramientas del Kit de recursos de Windows 2003.Descargue las herramientas del Kit de recursos de Windows Server 2003
fuente
Descubrí la solución por accidente un día, pero http://www.alex-ionescu.com/?p=59 también documenta una solución cercana a lo que encontré
Cree un archivo por lotes con lo siguiente (llámelo some.bat)
Luego, cree un servicio para llamar a este archivo por lotes (mediante un símbolo del sistema de administración)
(Tenga en cuenta el espacio después de cada =, y sugiero usar la ruta completa para some.bat)
Entonces es cuestión de comenzar los servicios
(No es necesario hacer que ui0detect arranque automático con sc config UI0Detect start = auto)
¡Y si todo va bien, obtendrá el cuadro intermitente de mensajes inminentes! Vaya a Ver mensajes y obtendrá un símbolo del sistema de administrador (nt autoridad \ sistema) que no se destruirá automáticamente por un inicio de servicio fallido (de ahí la necesidad de un archivo por lotes con el comando de inicio)
Esto funciona, aunque a veces no funciona el primer intento.
Creo que esto le da acceso a la sesión interactiva 0 solamente, que solo existe para la autoridad nt \ usuario del sistema
fuente
Puede usar el acceso directo start (Windows) + R para iniciar el cuadro de diálogo 'ejecutar'. A partir de ahí, simplemente escriba 'cmd' (sin comillas) y listo. cmd
fuente
CMD
normalmente no pone uno enSession 0
.