2013-04-25 14 views

risposta

10

Dovresti passare attraverso tutti i diversi utenti sotto HKEY_USERS, che richiede diritti elevati. E non cattura gli utenti che non sono stati ancora creati. Questo è solo l'approccio sbagliato.

Il modo per farlo è aggiungere i valori predefiniti a un tasto corrispondente sotto HKLM al momento dell'installazione. Quando il programma tenta di leggere dal registro, viene prima visualizzato in HKCU e, se la chiave non è presente, copia le informazioni dalla chiave corrispondente nella chiave HKLM nella chiave HKCU.

Una regola generale dei programmi di installazione è che non devono fare affidamento sulla gestione da parte dell'utente che utilizzerà successivamente il programma che è stato installato. Sicuramente nelle impostazioni aziendali i programmi vengono solitamente installati sotto un account utente che non eseguirà mai successivamente il programma in fase di installazione.

+0

Notato. Nel mio caso, ho trovato una chiave che è "equivalente" nella macchina locale in modo che potessi fare ciò che dovevo, ma mi chiedevo ancora se ci fosse un modo. –

+0

"Il modo per farlo è ..." - funziona, ma quale è il modo corretto di disinstallare un'app con questo approccio? – Paul

-1

No, non c'è modo di farlo.

Pensaci in questo scenario: hai installato l'app, quindi viene creato un nuovo account utente. Come si può aggiungere una chiave di registro a questo nuovo account durante l'installazione?


Oppure l'unico modo per farlo è quando l'utente avvia l'applicazione. Questa è la tua applicazione crea la chiave con i valori predefiniti al primo avvio.

7

In alcuni casi, l'installazione attiva può essere la soluzione.

Funziona aggiungendo una chiave a HKLM \ SOFTWARE \ Microsoft \ Active Setup \ Componenti installati \% nome pacchetto% con un numero di versione. Quando un utente accede a Windows controlla questa posizione e la confronta con HKCU \ SOFTWARE \ Microsoft \ Active Setup \ Installed Components \% nome pacchetto%. Se manca o una versione inferiore, esegue ciò che è stato impostato in HKLM \ SOFTWARE \ Microsoft \ Active Setup \ Installed Components \% nome pacchetto% \ StubPath.

È possibile fare alcune cose personalizzati in questo modo, ad esempio, ho usato per aggiungere un certo copione (per mappare un'unità di rete) al HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Run modo seguente :

reg add "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Active Setup \ Installed Components \ Mapdrive"/v "Versione"/d "1"/t REG_SZ/f

reg add "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Active Setup \ Inst alled Componenti \ MapDrive "/ v" StubPath "/ d" reg aggiungere HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Run/v "MountDrive"/d "C: \ map.cmd "/ t REG_DWORD/f"/f

Cosa succede qui:

  • quando l'utente successivo accede, assegni setup attivo se c'è una stringa Versione con valore di 1 o maggiore nel registro sotto chiave HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Active Setup \ Componenti installati \ MapDrive. Non c'è nessuno, quindi crea e gestisce anche il secondo reg add comando, che aggiunge una stringa con un valore C: \ map.cmd sotto HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Run
  • si verifica solo una volta, poiché in ogni accesso consecutivo in Configurazione attiva viene rilevato che l'installazione di HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Active Setup \ Installed Components \ MapDrive ora ha una versione al di sotto di essa.

Sembra complicato, ma ha senso quando lo si individua e molto utile.

http://wpkg.org/Adding_Registry_Settings#Adding_entries_to_HKCU_for_all_users

-1

Penso che il modo migliore per farlo, è di GPO.

Creare un oggetto Criteri di gruppo che modificherà lo HKCU che applica la modifica che si desidera apportare agli utenti interessati da tale oggetto Criteri di gruppo.

Il seguente Microsoft KB potrebbe aiutare a implementare questa:

http://technet.microsoft.com/en-us/library/bb742499.aspx

2

Questo è il mio processo come Attualmente lavoro in Windows 7

  • Trovare la chiave/s che si desidera sotto HKCU in regedit, esportalo/li.

  • Ora fare clic con il pulsante destro del mouse sulla chiave HKEY_USERS e selezionare load hive. Passare a C: \ Users \ Default e selezionare NTUSER.DAT. Dai un nome all'arnia come preferisci (ad es. NOME).

  • nel file reg esportato sostituire tutte le istanze di [HKEY_CURRENT_USER \ con [HKEY_USERS \ NAMEHERE \ (o quello che chiamato il vostro alveare) e salvare il file

  • doppio clic sul file reg per unirlo

  • Evidenziare il tasto NAMEHERE e selezionare scarica hive.

Ora per tutti i nuovi profili ottengono quelle chiavi. I profili esistenti non lo sono, quindi non lo vedrai funzionare se accedi con un profilo preesistente. Se si desidera eliminare il profilo, trovo che il modo più pulito sia il computer con il tasto destro del mouse, le proprietà selezionate, le impostazioni avanzate del sistema e quindi selezionare le impostazioni sotto i profili utente. Evidenzia il profilo che vuoi eliminare e seleziona elimina.

Sembra che questo non funzioni tutto il tempo.Sono qui alla ricerca di informazioni sul motivo per cui questo non funziona per le chiavi che sto cercando di aggiungere sotto HKEY_CURRENT_USER \ Software \ Classes \ ma fino ad ora questo processo ha sempre funzionato. Aggiungerò una nota se vedrò perché non funziona - attualmente mi chiedo se devo aggiungerlo tramite la politica nel contesto dell'utente.

Problemi correlati