Un avvio di servizio di sistema locale viene modificato in variables di ambiente in Windows 2008 R2 senza un riavvio?

Microsoft ha un articolo sulla base della conoscenza , ultimamente rivisto nel giugno 2007, che afferma:

Se si aggiorna le variables di ambiente o aggiunge nuove variables di ambiente, è necessario riavviare il computer prima che le modifiche apportte influenzino i servizi eseguiti nell'account di sistema locale.

  • La modalità passiva per FileZilla FTP non funziona
  • Arrestare il client DHCP dal ricevere il vecchio indirizzo IP sulla nuova VLAN
  • Perché il server DNS non risolve qualsiasi dominio che finisce in .io?
  • Aggiornamento a Windows Server 2012 da Windows Server 2008 R2
  • Viene applicato un object Criteri di gruppo se la scheda "Filtraggio della protezione" è vuota, ma in Delegazione c'è un gruppo di protezione che dispone di lettura e applicazione correttamente?
  • Come posso eliminare automaticamente la cartella / tmp su unità condivisa?
  • Non è chiaro se questo vale per Windows Server 2008 R2. Può chiunque consigliare?

    Vedo che c'è una correzione per Windows 2003 che risolve questo problema. Di conseguenza mi chiedo se il 2008 R2 sia stato rollato in questa correzione. Non riesco a trovare alcuna prova per suggerire che sia ancora un problema con Windows 2008 R2, ma la mancanza di prove è less confortante di una dichiarazione concreta al contrario.

    Una questione correlata riguarda un terreno simile, ma non discute di Windows 2008.

  • Problema di posta complessa con Postfix, PHP e Gmail / Enterprise di Google Apps
  • Come interrompere temporaneamente la sincronizzazione del tempo con il controller di dominio?
  • Rotte statiche su Windows - Computer con due NIC collegate a due reti routed
  • IP locali e pubblici sullo stesso interruttore?
  • Visualizzazione dell'interface di loopback su Solaris 10 (utilizzando un snoop o un altro strumento)
  • Dovrebbe essere consentito un webserver nel DMZ di accedere a MSSQL nella LAN?
  • 4 Solutions collect form web for “Un avvio di servizio di sistema locale viene modificato in variables di ambiente in Windows 2008 R2 senza un riavvio?”

    Il riavvio di un servizio comporterà le modifiche alle variables di ambiente di sistema.

    Per controllare: Utilizzare SysInternals Process Explorer per controllare l'ambiente di un process di servizio prima e dopo la modifica / aggiunta di una variabile di ambiente di sistema e di riavviare il servizio. Nota: utilizzare "Esegui come amministratore" su procexp.exe per visualizzare tutte le properties; dei processi di sistema.

    immettere qui la descrizione dell'immagine

    immettere qui la descrizione dell'immagine

    Sicuro. Qualsiasi process vede le variables dell'ambiente in cui SONO QUANDO IL PROCESSO SEGUE. Fondamentalmente ottiene una copia.

    Quindi, se avete bisogno di loro per essere prelevati da servizi – riavviare i servizi. Se hai bisogno di essere prelevati dalle windows, riavvia le windows.

    Soprattutto perché il conto locale del sistema sta conservando questa copia;) Così – no. Questo è ancora vero. Generalmente direi che cambiare questo è un elemento "vicino zero priorità" poiché questo tipo di cambiamento è abbastanza raro.

    Possibile attraverso il cattivo hack durante l'esecuzione. Altrimenti solo dopo il riavvio.

    Verifica solo che le variables di ambiente possono essere modificate con Cygwin GDB. Provato con x86 Cygwin e x86 Winword. Verificato con ProcExp.exe.

    I comandi GDB trovati qui: https://stackoverflow.com/questions/205064/is-there-a-way-to-change-another-processs-environment-variables

    Microsoft dice che questo non è il modo più normale per farlo: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682009(v=vs.85).aspx

    L'alterazione delle variables di ambiente di un process figlio durante la creazione di processi è l'unico modo in cui un process può modificare direttamente le variables d'ambiente di un altro process. Un process non può mai modificare direttamente le variables di ambiente di un altro process che non è un figlio di quel process.


    La mia modifica precedente:

    La mia opinione migliore: il servizio deve essere riavviato. Alless.

    Un process su creazione erediterà le variables dell'ambiente dal suo genitore. ( http://msdn.microsoft.com/en-us/library/windows/desktop/ms682653(v=vs.85).aspx )

    Quindi: il process deve essere riavviato e deve esserci qualcosa per ereditare.

    Come controllare
    Verifica se utilizzi ProcExp.exe. ( http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx ) Fare doppio clic sul process interessato e select la scheda "Ambiente".

    Per trovare il genitore fare doppio clic sul bambino, select la scheda "Immagine" e leggere la row "Genitore:".

    Ripetere tutta la strada fino alla linea del patrimonio.

    La risposta @Brian non copre tutti i casi di utilizzo. Nel mio caso, ho aggiornato Java su una macchina Windows 7 x64 dalla versione da 7 a 8. Successivamente, il servizio che dipende da Java non è stato avviato ("net start SymmetricDS") perché il sistema non è in grado di trovare l'eseguibile Java.

    Ie services.exe (process principale di tutti i servizi di LocalSystem) non prende le modifiche delle variables di ambiente. Solo lo fa per i nuovi processi di nascita dei bambini. Lo ho confermato guardandolo con SysInternals Process Explorer. Prova: http://workblog.pilin.name/2013/03/service-environment-variables.html . Non dice quali versioni di Windows si applica, ma la data di pubblicazione è piuttosto nuova, quindi penso che si applica a Windows 7 e Windows Server 2008.

    Risolti il ​​problema facendo i collegamenti a file eseguibili Java in una delle cartelle in un vecchio PATH contenuto in services.exe.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.