Tengo una aplicación que actualiza el software en la máquina local. Necesito que el software se actualice antes de que el usuario inicie sesión y he leído que ejecutar la aplicación a través de la RunServicesOnce
clave de registro es probablemente lo más apropiado para este propósito.
Pero no puedo encontrar esta clave regedit
y no aparece en la misma ubicación que la clave HKLM RunOnce en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
.
- ¿Dónde está ubicada esta llave? ¿Lo mismo en Windows XP\Vista\7\8\8.1\10?
- ¿Cómo lo uso? ¿Existen parámetros opcionales?
- ¿Cómo puedo determinar el usuario con el que se ejecuta la aplicación? ¿Lo ejecuta el usuario que creó la clave? Si un
LocalSystem
servicio crea la clave, ¿se ejecutará comoLocalSystem
?
Respuesta1
¿Dónde está la clave de registro RunServicesOnce?
Tengo una aplicación que actualiza el software en la máquina local. Necesito que el software se actualice antes de que el usuario inicie sesión
Iniciar programa antes de iniciar sesión como usuario en Windows 7
Si desea que se inicie antes de que el usuario inicie sesión, deberá iniciarlo como un servicio. Aquí está la secuencia de inicio de las principales claves de registro, comenzando inmediatamente después de que se haya leído bootmgr y terminando con las entradas de acceso directo del programa en las dos carpetas de Inicio.
- HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute. Esto puede incluir instrucciones para programar la ejecución de chkdsk pero no de programas de usuario.
- Los servicios comienzan a continuación, seguidos de las claves de registro RunServicesOnce y RunServices (si están presentes)
- Luego el usuario inicia sesión en el sistema.
- HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\UserInit. Esto apunta al programa C:\WINDOWS\system32\userinit.exe y la entrada termina con una coma. Se pueden iniciar otros programas desde esta clave agregándolas y separándolas con una coma.
- HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell. Esto debería contener solo una entrada, explorer.exe.
- Las entradas del programa en estas 2 claves de registro para TODOS LOS USUARIOS comienzan a continuación: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run y \RunOnce
- Las entradas del programa en estas 2 claves de registro para el USUARIO ACTUAL comienzan a continuación: HKCU\Software\Microsoft\Windows\CurrentVersion\Run y \RunOnce
- Los programas en las carpetas de inicio de Todos los usuarios y Usuario actual se inician en último lugar.
Los programas importantes como antivirus y firewall se inician al principio de la secuencia como Servicios. Los íconos que aparecen en el Área de notificación (abajo a la derecha de la pantalla) son solo sus interfaces de usuario, es decir, opciones y preferencias.
La ubicación adicional para el software de 32 bits en una computadora de 64 bits es HKLM\SOFTWARE\Wow6432Node y HKCU.
Las teclas de ejecución y el orden de búsqueda
Se accede al registro incluso antes de que se cargue el kernel NT, por lo que es muy importante comprender qué está configurado para cargar la computadora al inicio. Se accede a la siguiente lista de claves de registro durante el inicio del sistema en orden de uso por los diferentes componentes de Windows:
- HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute
- HKLM\System\CurrentControlSet\Services (el valor inicial de 0 indica los controladores del kernel, que se cargan antes del inicio del kernel)
- HKLM\System\CurrentControlSet\Services (valor inicial de 2, inicio automático y 3, inicio manual a través de SCM)
- HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
- HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
- HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
- HKCU\Software\Microsoft\Windows\CurrentVersion\RunServices
- HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify
- HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
- HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
- HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
- HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad
- HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
- HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
- HKLM\Software\Microsoft\Windows\CurrentVersion\Ejecutar
- HKCU\Software\Microsoft\Windows\CurrentVersion\Ejecutar
- HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
- HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
- HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
- HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\cargar
- HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows
- HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SharedTaskScheduler (solo XP, NT, W2k)
- HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs
Nota:Algunas de estas claves también se reflejan en HKLM\Software\wow6432node en sistemas que se ejecutan en una arquitectura de 64 bits y con una versión de 64 bits de Windows. No cubriré cada uno de estos en esta publicación.
Ejecute su servicio como la cuenta LocalSystem a menos que la cuenta necesite acceder a los recursos de la red, momento en el cual creará una cuenta de servicio de dominio, le dará acceso a los recursos correspondientes y luego codificará sus credenciales para que se ejecute el servicio. En la máquina local, tendrá permisos administrativos para todo y no requerirá ninguna contraseña para la credencial del servicio.
Cuenta del sistema local
ElSistema localLa cuenta es una cuenta local predefinida utilizada por el gerente de control de servicios. Esta cuenta no es reconocida por el subsistema de seguridad, por lo que no puede especificar su nombre en una llamada al Nombre de cuenta de búsquedafunción. Tiene amplios privilegios en la computadora local y actúa como computadora en la red. Su token incluye elAUTORIDAD NT\SISTEMAyBUILTIN\AdministradoresSID; estas cuentas tienen acceso a la mayoría de los objetos del sistema. El nombre de la cuenta en todas las configuraciones regionales es.\Sistema Local. El nombre,Sistema localo NombreEquipo\SistemaLocaltambién puede ser usado.Esta cuenta no tiene contraseña. Si especifica la cuenta LocalSystem en una llamada al CrearserviciooCambiar configuración de serviciofunción, se ignora cualquier información de contraseña que proporcione.