Les variables d'environnement sous Windows

Le
ast
bonjour

Sous Windows (Vista), il y a 2 types de variables
d'environnement, les utilisateurs et les système.
Les VE utilisateurs sont spécifiques à un utilisateur
donné alors que les VE systèmes sont pour tous les
utilisateurs.

Ma question porte sur ce qu'il se passe quand une variable
est définie des 2 cotés, utilisateur + système.

Pour PATH par exemple, qui est défini sur mon PC à la
fois en utilisateur et en systeme, il y a concaténation, je
le vois en tapant echo %PATH% dans une fenêtre cmd.

En revanche pour TMP qui est également définie en
utilisateur et en systeme, c'est la valeur utilisateur seule
qui est retenue.

Pourquoi cette différence de comportement selon les
variables ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Miakinen
Le #26392048
[copie et suivi vers fr.comp.os.ms-windows]

Bonjour,

Le 09/03/2016 14:46, ast a écrit sur fr.comp.sys.pc :

Sous Windows (Vista),



Visiblement ta question ne porte pas sur la partie matérielle
des PC mais sur le système d'exploitation Windows. Du coup je
fais suivre vers le groupe adapté.

il y a 2 types de variables
d'environnement, les utilisateurs et les système.
Les VE utilisateurs sont spécifiques à un utilisateur
donné alors que les VE systèmes sont pour tous les
utilisateurs.

Ma question porte sur ce qu'il se passe quand une variable
est définie des 2 cotés, utilisateur + système.

Pour PATH par exemple, qui est défini sur mon PC à la
fois en utilisateur et en systeme, il y a concaténation, je
le vois en tapant echo %PATH% dans une fenêtre cmd.

En revanche pour TMP qui est également définie en
utilisateur et en systeme, c'est la valeur utilisateur seule
qui est retenue.

Pourquoi cette différence de comportement selon les
variables ?



P.-S. : ton adresse invalide devrait se *terminer* par .invalid
plutôt qu'avoir juste invalid dedans : exemple.

Cordialement,
--
Olivier Miakinen

« Au fond, diviser par zéro revient à unifier la Mécanique Quantique
et la Relativité Générale. » -- M.A. le 7/3/2016 dans fr.sci.maths
ast
Le #26392054
"Olivier Miakinen" news:nbp9t5$1jsp$

P.-S. : ton adresse invalide devrait se *terminer* par .invalid
plutôt qu'avoir juste invalid dedans : exemple.



C'est fait


« Au fond, diviser par zéro revient à unifier la Mécanique Quantique
et la Relativité Générale. » -- M.A. le 7/3/2016 dans fr.sci.maths



Je ne comprends pas bien pourquoi tu réponds encore à ce gars-là
Olivier Miakinen
Le #26392056
Le 09/03/2016 15:49, ast m'a répondu :

P.-S. : ton adresse invalide devrait se *terminer* par .invalid



C'est fait



Merci !

« Au fond, diviser par zéro revient à unifier la Mécanique Quantique
et la Relativité Générale. » -- M.A. le 7/3/2016 dans fr.sci.maths



Je ne comprends pas bien pourquoi tu réponds encore à ce gars-là



La réponse « parce que ça m'amuse » te parait-elle acceptable ? ;-)

[suivi en privé car je suis complètement hors charte maintenant]

--
Olivier Miakinen

« Au fond, diviser par zéro revient à unifier la Mécanique Quantique
et la Relativité Générale. » -- M.A. le 7/3/2016 dans fr.sci.maths
Pascal-J
Le #26392302
En revanche pour TMP qui est également définie en


utilisateur et en systeme, c'est la valeur utilisateur seule
qui est retenue.

Non, les fichiers temporaires utilisés par un process system vont dans le
répertoire idoine, ceux des process utilisateurs dans le leur. Tu en a dans
les deux sans mélange.

Penser qu'une machine peut tourner sans qu'une session soit ouverte et un
utilisateur actif, c'est d'ailleurs généralement toujours le cas sur un
serveur.
Pascal-J
Le #26392300
Avec moins de dix messages par mois sur un forum ce n'est pas trop la peine
de faire la chasse au hors sujet ;>)
Pascal-J
Le #26392301
alors que les VE systèmes sont pour tous les


utilisateurs.

Pas tout a fait, les VE system sont pour l'utilisateur system qui est un
utilisateur un peu spécial sans console avec surtout les droits adaptés a
son état, c'est a dire totaux. Regarde les droits sur une racine de disque
par exemple ou le gestionnaire de tache avec les propriétaires de chaque
processus (utilisateur, system, service ...)

J'aurai pu préciser dans mon autre réponse mais la séparation des
répertoires temporaires system et de chaque utilisateur est justement dans
un but de sécurité de façon a ce que des scories ou des paramètres de
process en cours ne soient interceptés par quelqu'un qui n'a pas a y mettre
le nez.
Olivier Miakinen
Le #26392305
Le 11/03/2016 23:32, Pascal-J a écrit :
Avec moins de dix messages par mois sur un forum ce n'est pas trop la peine
de faire la chasse au hors sujet ;>)



C'était juste pour que ast ait plus de chances d'obtenir une réponse
en s'adressant à ceux qui savent. Mais malheureusement ça n'a pas
marché, pour le moment personne n'a su lui répondre (moi je ne sais
pas). Ah, si, en fait je vois que tu lui as répondu dans l'autre
groupe... bon, mettons que je n'ai rien dit. ;-)

--
Olivier Miakinen

« Au fond, diviser par zéro revient à unifier la Mécanique Quantique
et la Relativité Générale. » -- M.A. le 7/3/2016 dans fr.sci.maths
ast
Le #26392806
"Pascal-J" news:56e3471d$0$9248$
>En revanche pour TMP qui est également définie en
utilisateur et en systeme, c'est la valeur utilisateur seule
qui est retenue.

Non, les fichiers temporaires utilisés par un process system vont dans le
répertoire idoine, ceux des process utilisateurs dans le leur. Tu en a dans
les deux sans mélange.



Dans propriétés système / variables d'environnement

en variable systeme, j'ai TMP = C:/Windows/TEMP
en variable utilisateur jai TMP = %USERPROFIE/AppData/local/TEMP

et si je fais SET TMP dans une fenêtre de commandes, c'est la 2 ème
qui est retenue

SET TMP


TMP=C:UsersJEAN-M~1AppDataLocalTemp

Cest bien le comportement expliqué dans les docs que j'ai pu lire, les
variables users écrasent les variables systemes.

sauf PATH .... où il y a concaténation.

Pourquoi ?

je n'ai pas trouvé d'explications
Pascal-J
Le #26392817
et si je fais SET TMP dans une fenêtre de commandes, c'est la 2 ème


qui est retenue

Ce qui est normal et logique, comment t'appelle tu et a qui appartient le
process de ta
fenêtre de commande ?
DuboisP
Le #26392859
Le 17/03/2016 09:11, ast a écrit :

"Pascal-J" news:56e3471d$0$9248$
>En revanche pour TMP qui est également définie en
utilisateur et en systeme, c'est la valeur utilisateur seule
qui est retenue.

Non, les fichiers temporaires utilisés par un process system vont dans le
répertoire idoine, ceux des process utilisateurs dans le leur. Tu en a
dans
les deux sans mélange.



Dans propriétés système / variables d'environnement

en variable systeme, j'ai TMP = C:/Windows/TEMP
en variable utilisateur jai TMP = %USERPROFIE/AppData/local/TEMP

et si je fais SET TMP dans une fenêtre de commandes, c'est la 2 ème
qui est retenue

SET TMP


TMP=C:UsersJEAN-M~1AppDataLocalTemp

Cest bien le comportement expliqué dans les docs que j'ai pu lire, les
variables users écrasent les variables systemes.

sauf PATH .... où il y a concaténation.

Pourquoi ?

je n'ai pas trouvé d'explications


que ce soit en system ou en utilisateur, pour MES PC, je mets

SET TMP=%SystemDrive%TEMP
SET TEMP=%SystemDrive%TEMP

du coup, tout est toujours au même endroit
Publicité
Poster une réponse
Anonyme