Onde está a chave de registro RunServicesOnce

Onde está a chave de registro RunServicesOnce

Tenho um aplicativo que atualiza software na máquina local. Preciso que o software seja atualizado antes do logon do usuário e li que executar o aplicativo por meio da RunServicesOncechave de registro é provavelmente o mais apropriado para essa finalidade.

Mas não consigo encontrar essa chave usando regedite ela não aparece no mesmo local que a chave HKLM RunOnce em HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce.

  1. Onde esta chave está localizada? O mesmo no Windows XP\Vista\7\8\8.1\10?
  2. Como faço para usá-lo, existem parâmetros opcionais?
  3. Como determino o usuário com o qual o aplicativo é executado? É executado pelo usuário que criou a chave? Se um LocalSystemserviço criar a chave, ela será executada como LocalSystem?

Responder1

Onde está a chave de registro RunServicesOnce

Tenho um aplicativo que atualiza software na máquina local. Preciso que o software seja atualizado antes do login do usuário

Inicie o programa antes do logon do usuário no Windows 7

Se quiser que ele seja iniciado antes do usuário fazer logon, será necessário iniciá-lo como um serviço. Aqui está a sequência de inicialização das principais chaves de registro, começando imediatamente após a leitura do bootmgr e terminando com as entradas de atalho do programa nas duas pastas de inicialização.

  1. HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute. Isso pode incluir instruções para agendar a execução do chkdsk, mas não dos programas do usuário.
  2. Os serviços começam em seguida, seguidos pelas chaves de registro RunServicesOnce e RunServices (se presentes)
  3. O usuário então faz logon no sistema
  4. HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\UserInit. Isso aponta para o programa C:\WINDOWS\system32\userinit.exe e a entrada termina com uma vírgula. Outros programas podem ser iniciados a partir desta chave, anexando-os e separando-os com vírgula.
  5. HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell. Deve conter apenas uma entrada, explorer.exe.
  6. As entradas do programa nestas 2 chaves de registro para TODOS OS USUÁRIOS começam em seguida: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run e \RunOnce
  7. As entradas do programa nestas 2 chaves de registro para USUÁRIO ATUAL começam em seguida: HKCU\Software\Microsoft\Windows\CurrentVersion\Run e \RunOnce
  8. Os programas nas pastas de inicialização de todos os usuários e do usuário atual são iniciados por último.

Programas importantes como antivírus e firewall começam no início da sequência como Serviços. Os ícones que aparecem na Área de Notificação (canto inferior direito da tela) são apenas suas interfaces de usuário, ou seja, opções e preferências.

O local adicional para software de 32 bits em um computador de 64 bits é HKLM\SOFTWARE\Wow6432Node e HKCU.

As chaves de execução e a ordem de pesquisa

O registro é acessado antes mesmo do kernel do NT ser carregado, por isso é muito importante entender o que o computador está configurado para carregar na inicialização. A seguinte lista de chaves de registro são acessadas durante a inicialização do sistema na ordem de uso pelos diferentes componentes do Windows:

  1. HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute
  2. HKLM\System\CurrentControlSet\Services (o valor inicial 0 indica drivers do kernel, que são carregados antes do início do kernel)
  3. HKLM\System\CurrentControlSet\Services (valor inicial de 2, inicialização automática e 3, inicialização manual via SCM)
  4. HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
  5. HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
  6. HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
  7. HKCU\Software\Microsoft\Windows\CurrentVersion\RunServices
  8. HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify
  9. HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
  10. HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
  11. HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
  12. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad
  13. HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
  14. HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
  15. HKLM\Software\Microsoft\Windows\CurrentVersion\Run
  16. HKCU\Software\Microsoft\Windows\CurrentVersion\Run
  17. HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
  18. HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
  19. HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
  20. HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\load
  21. HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows
  22. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SharedTaskScheduler (somente XP, NT, W2k)
  23. HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs

Observação:Algumas dessas chaves também são refletidas em HKLM\Software\wow6432node em sistemas executados em uma arquitetura de 64 bits e com uma versão de 64 bits do Windows. Não irei cobrir cada um deles neste post.

Execute seu serviço como a conta LocalSystem, a menos que a conta precise acessar recursos de rede. Nesse ponto, você criaria uma conta de serviço de domínio, concederia acesso aos recursos aplicáveis ​​e, em seguida, codificaria suas credenciais para que o serviço fosse executado. Na máquina local, terá permissões administrativas para tudo e não exigirá nenhuma senha para a credencial de serviço.

Conta LocalSystem

OSistema Localconta é uma conta local predefinida usada pelo gerente de controle de serviço. Esta conta não é reconhecida pelo subsistema de segurança, portanto você não pode especificar seu nome em uma chamada para o PesquisaNomeDaContafunção. Possui amplos privilégios no computador local e atua como o computador na rede. Seu token inclui oAUTORIDADE NT\SISTEMAeBUILTIN\AdministradoresSID; essas contas têm acesso à maioria dos objetos do sistema. O nome da conta em todas as localidades é.\LocalSystem. O nome,Sistema Localou NomedoComputador\SistemaLocaltambém pode ser usado.Esta conta não possui senha. Se você especificar a conta LocalSystem em uma chamada para o Criar serviçoouAlterarServiceConfigfunção, qualquer informação de senha fornecida será ignorada.

informação relacionada