Dove si trova la chiave di registro RunServicesOnce


4

Ho un'applicazione che aggiorna il software sul computer locale. Ho bisogno che il software venga aggiornato prima dell'accesso dell'utente e ho letto che eseguire l'applicazione tramite la RunServicesOncechiave di registro è probabilmente il più appropriato da utilizzare a questo scopo.

Ma non riesco a trovare questa chiave usando regedite non appare nella stessa posizione della chiave HKLM RunOnce HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce.

  1. Dove si trova questa chiave? Lo stesso in Windows XP \ Vista \ 7 \ 8 \ 8.1 \ 10?
  2. Come lo uso, ci sono parametri opzionali?
  3. Come faccio a determinare l'utente come l'applicazione viene eseguita come? È gestito dall'utente che ha creato la chiave? Se un LocalSystemservizio crea la chiave, verrà eseguita come LocalSystem?


@Ramhound grazie per il tuo aiuto - dove in quel documento specifica la posizione della chiave RunServicesOnce?
Khargoosh,

Sbagliato ... Articolo di supporto .... avrebbe dovuto essere collegato a questo
Ramhound,


1
@Ramhound il tuo secondo link afferma chiaramente che si applica a "Windows 95, Windows 98 e Windows Millennium Edition"
Yisroel Tech

Risposte:


5

Dove si trova la chiave di registro RunServicesOnce

Ho un'applicazione che aggiorna il software sul computer locale. È necessario che il software venga aggiornato prima dell'accesso dell'utente

Avviare il programma prima dell'accesso utente di Windows 7

Se vuoi che inizi prima che l'utente acceda, dovrai avviarlo come servizio. Ecco la sequenza di avvio delle principali chiavi di registro, che inizia immediatamente dopo la lettura di bootmgr e termina con le voci di scelta rapida del programma nelle due cartelle di avvio.

  1. HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ BootExecute. Ciò può includere istruzioni per pianificare l'esecuzione di chkdsk ma non dei programmi utente.
  2. I servizi iniziano dopo, seguiti dalle chiavi di registro RunServicesOnce e RunServices (se presenti)
  3. L'utente accede quindi al sistema
  4. HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ UserInit. Questo punta al programma C: \ WINDOWS \ system32 \ userinit.exe e la voce termina con una virgola. Altri programmi possono essere avviati da questa chiave aggiungendoli e separandoli con una virgola.
  5. HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ Shell. Questo dovrebbe contenere solo una voce, explorer.exe.
  6. Le voci di programma in queste 2 chiavi di registro per TUTTI GLI UTENTI iniziano dopo: HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run e \ RunOnce
  7. Le voci di programma in queste 2 chiavi di registro per UTENTE ATTUALE iniziano dopo: HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run e \ RunOnce
  8. I programmi nelle Cartelle di avvio di Tutti gli utenti e Utente corrente vengono avviati per ultimi.

Programmi importanti come antivirus e firewall iniziano all'inizio della sequenza come Servizi. Le icone che compaiono nell'area di notifica (in basso a destra dello schermo) sono solo le loro interfacce utente, ovvero opzioni e preferenze.

L'ubicazione aggiuntiva per il software a 32 bit in un computer a 64 bit è HKLM \ SOFTWARE \ Wow6432Node e HKCU.

Chiavi e ordine di ricerca

Si accede al registro anche prima del caricamento del kernel NT, quindi è molto importante capire cosa è configurato per il caricamento all'avvio del computer. Il seguente elenco di chiavi di registro è accessibile all'avvio del sistema in ordine di utilizzo da parte dei diversi componenti di Windows:

  1. HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ BootExecute
  2. HKLM \ System \ CurrentControlSet \ Services (il valore iniziale di 0 indica i driver del kernel, che si caricano prima dell'inizio del kernel)
  3. HKLM \ System \ CurrentControlSet \ Services (valore iniziale di 2, avvio automatico e 3, avvio manuale tramite 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 (solo XP, NT, W2k)
  23. HKLM \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Windows \ AppInit_DLLs

Nota: alcune di queste chiavi si riflettono anche in HKLM \ Software \ wow6432node su sistemi in esecuzione su un'architettura a 64 bit e con una versione a 64 bit di Windows. Non tratterò ognuno di questi in questo post.

Esegui il tuo servizio come account LocalSystem a meno che l'account non debba accedere alle risorse di rete a quel punto dovresti creare un account del servizio di dominio, dargli accesso alle risorse applicabili e quindi codificare le sue credenziali affinché il servizio funzioni come. Sul computer locale, disporrà delle autorizzazioni amministrative per tutto e non richiederà alcuna password per le credenziali del servizio.

Account del sistema locale

L' account LocalSystem è un account locale predefinito utilizzato dal gestore controllo servizi . Questo account non è riconosciuto dal sottosistema di sicurezza, quindi non è possibile specificarne il nome in una chiamata alla funzione LookupAccountName . Ha ampi privilegi sul computer locale e funge da computer sulla rete. Il token include i SID NT AUTHORITY \ SYSTEM e BUILTIN \ Administrators ; questi account hanno accesso alla maggior parte degli oggetti di sistema. Il nome dell'account in tutte le versioni locali è . \ LocalSystem . È inoltre possibile utilizzare il nome, LocalSystem o ComputerName \ LocalSystem . Questo account non ha una password. Se si specifica l'account LocalSystem in una chiamata alla funzione CreateService o ChangeServiceConfig , le informazioni sulla password fornite vengono ignorate.


2
" Se vuoi che inizi prima che l'utente acceda, dovrai avviarlo come servizio. " Che ne dici schtasksinvece?
mirh,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.