Assiste.com - Sécurité informatique - Vie privée sur le Web - Neutralité d'Internet

cr  01.04.2012      r+  01.06.2024      r-  15.07.2024      Pierre Pinard.         (Alertes et avis de sécurité au jour le jour)

En informatique, les « variables d'environnement » sont des noms conventionnels symboliques auxquels ont fait appel pour utiliser une ressource, indépendamment de la valeur qu'elle prend. Par exemple, une variable d'environnement peut avoir, comme valeur, le chemin d'accès complet à une ressource physique (un fichier...). La fonction (le programme...) faisant appel à cette valeur fonctionnera toujours, même si le fichier en question change d'emplacement. Cela permet une portabilité des applications et une adaptation automatique d'une application à une modification de certaines valeurs. Les fonctions utilisant ces valeurs deviennent totalement indépendantes des valeurs elles mêmes qui sont désormais des variables stockées à l'extérieur de la fonction et modifiables sans avoir à réécrire la fonction.

Les « variables d'environnement » existent depuis la nuit des temps (de l'informatique). Elles existent, par exemple, sous les systèmes d'exploitation :

  • Unix (créé en 1969)
  • CP/M (créé en 1974)
  • MS-DOS (basé sur le système d'exploitation de la société SCP (Seattle Computer Products), développé en 4 mois à partir d'avril 1980 sous le nom de QDOS durant la phase de développement et renommé 86-DOS en phase de commercialisation pour les ordinateurs à base de processeurs Intel 8086. Microsoft achète une licence 86-Dos à SCP pour 25.000 $, en décembre 1980, tout en cachant à SCP le contrat entre Microsoft et IBM où il s'agit de le fournir sous le nom de MS-DOS. SCP portera plainte, obtiendra un peu moins de 1 million de dollars et disparaîtra tandis que Microsoft surfera sur des milliards).

Les « variables d'environnement » se reconnaissent à leur convention d'écriture : un nom précédé et suivi du caractère "%".

Par exemple, il est souvent fait référence aux valeurs contenues dans les « variables d'environnement » suivantes pour localiser les emplacements d'une installation de Windows, car rien ne vous oblige à utiliser les emplacements par défaut pour installer Windows :

  • %systemroot%
  • %programfiles%
  • %Windir%
  • Etc. ...
Ces termes sont des « variables d'environnement » et leurs contenus sont les valeurs recherchées.

Il n'est pas possible de faire un inventaire complet des « variables d'environnement », chaque éditeur de logiciel pouvant en créer plusieurs pour chacun de ses logiciels.

Les variables d'environnement indiquées dans le tableau ci-dessous sont présentes sur tous les ordinateurs Windows.

Vous pouvez également avoir des variables d'environnement spécifiques à l'ordinateur et / ou spécifiques à des utilisateurs supplémentaires de l'ordinateur. Pour en avoir la liste, tapez SET dans une invite de commande.

Nom de la variable d'environnement

Variable
Système

Variable
Utilisateur

Variable
Processus

Variable Processus
(Windows 98/Me only)

NUMBER_OF_PROCESSORS Variable d'environnement Variable d'environnement
PROCESSOR_ARCHITECTURE Variable d'environnement Variable d'environnement
PROCESSOR_IDENTIFIER Variable d'environnement Variable d'environnement
PROCESSOR_LEVEL Variable d'environnement Variable d'environnement
PROCESSOR_REVISION Variable d'environnement Variable d'environnement
OS Variable d'environnement Variable d'environnement
COMSPEC Variable d'environnement Variable d'environnement Variable d'environnement
HOMEDRIVE Variable d'environnement
HOMEPATH Variable d'environnement
PATH Variable d'environnement Variable d'environnement Variable d'environnement Variable d'environnement
PATHEXT Variable d'environnement Variable d'environnement
PROMPT Variable d'environnement Variable d'environnement
SYSTEMDRIVE Variable d'environnement
SYSTEMROOT Variable d'environnement
WINDIR Variable d'environnement Variable d'environnement Variable d'environnement
TEMP Variable d'environnement Variable d'environnement Variable d'environnement
TMP Variable d'environnement Variable d'environnement Variable d'environnement

Pourquoi mes chemins d'accès ne sont-ils pas désignés directement ?

Parce que, depuis le début de l'informatique diffusée à grande échelle, il est apparu nécessaire, lors de l'écriture d'un programme par exemple, de désigner les objets manipulés (les fichiers...) indépendamment de l'emplacement physique de ceux-ci sur les supports (les disques...). Ceci est nécessaire à la portabilité des applications. Les chemins d'accès à ces objets sont donc désignés "en théorie", la théorie étant confrontée à la réalité au dernier moment, lors de l'installation d'un programme. L'installation d'un même programme chez Pierre, Paul, Jacques peut donc être totalement différente, le programme s'exécutant correctement malgré tout.

Par exemple, les « variables d'environnement » TMP et TEMP fournissent à Windows l'emplacement des répertoires temporaires dont Windows à besoin. Une astuce d'installation de Windows consiste, par exemple, à créer une partition dans laquelle sont installés tous les répertoires temporaires, le fichier de mémoire virtuelle de Windows (le swapp-file) etc. ... Le "nettoyage" par l'utilisateur est grandement facilité.

Et puis, ces même « variables d'environnement » TMP et TEMP permettent aux mêmes processus de travailler sans se soucier de savoir quel est le compte utilisateur (la session) ouverte.

Aujourd'hui, les « variables d'environnement » sont de plus en plus remplacées par des clés dans le Registre Windows mais continuent d'exister et d'être utilisées.

Dans tous les cas (Registre Windows ou variable d'environnement), le déplacement d'un objet, un fichier par exemple, ne nécessite plus que la modification d'une unique variable d'environnement et toutes les applications utilisant ce fichier sont à jour en même temps et savent le retrouver.

Majuscules ou minuscules dans les variables d'environnement ?

Les noms des « variables d'environnement » sont insensibles à la case (majuscules / minuscules sont indifférentes). La casse (majuscule ou minuscule) n'a aucune importance dans l'écriture des noms de ces variables. Nous les écrirons en minuscules pour de simples raisons "esthétiques".

Pourquoi mes chemins d'accès ne seraient-ils pas standard ?

Ceci peut être modifié volontairement, entre autres pour des questions de sécurisation d'un système, au moment de l'installation de celui-ci. La personne qui installe le système peut demander à ce que les emplacements de divers répertoires de base soient différents de leurs emplacements standard (par défaut). Cette précaution vise à aveugler certains parasites "primaires" qui s'attaquent directement aux emplacements par défaut.

Par exemple, le dossier système peut être C:\Windows sur un ordinateur et C:\Winnt sur un autre.

Particularités des variables d'environnement :

Vous pouvez utiliser l'astérisque (*) comme caractère générique dans les fichiers MigUser.xml, MigApp.xml et MigDoc.xml. Cependant, le caractère astérisque (*) n’est pas autorisé dans le fichier Config.xml.

Le point d’interrogation (?) n’est pas autorisé comme caractère générique.




Sous Windows, la plupart des variables d'environnement peuvent être vues et listées avec la commande " set " sans aucun paramètre.

Touches Windows + Pause > Paramètres systèmes avancés > Variables d'environnement
Touches Windows + Pause Touches Windows + Pause > Paramètres systèmes avancés > Variables d'environnement Paramètres systèmes avancés Touches Windows + Pause > Paramètres systèmes avancés > Variables d'environnement Variables d'environnement

Autre méthode pour connaître ses variables d'environnement (et les modifier) :

Touches Windows + Pause > Paramètres systèmes avancés > Variables d'environnement
Touches Windows + Pause Touches Windows + Pause > Paramètres systèmes avancés > Variables d'environnement Paramètres systèmes avancés Touches Windows + Pause > Paramètres systèmes avancés > Variables d'environnement Variables d'environnement

Ou, encore plus directement : Touches Windows + R :

Variables d'environnement obtenues par les propriétés système
Variables d'environnement obtenues par les propriétés système




Si on vous dit, dans une procédure d'assistance à la décontamination de votre ordinateur, sur un forum d'entraide :
"Détruire le fichier %systemroot%\fichier machin.exe"
vous devez comprendre, si la valeur de votre votre %systemroot% est c:\windows. :
"Détruire le fichier c:\windows\fichier machin.exe"




Nom de la Variable
ALLUSERSAPPDATA
allusersprofile
CommonProgramFiles
CommonProgramFiles(X86)
CSIDL_COMMON_ADMINTOOLS
CSIDL_COMMON_ALTSTARTUP
CSIDL_COMMON_APPDATA
CSIDL_COMMON_DESKTOPDIRECTORY
CSIDL_COMMON_DOCUMENTS
CSIDL_COMMON_FAVORITES
CSIDL_COMMON_MUSIC
CSIDL_COMMON_PICTURES
CSIDL_COMMON_PROGRAMS
CSIDL_COMMON_STARTMENU
CSIDL_COMMON_STARTUP
CSIDL_COMMON_TEMPLATES
CSIDL_COMMON_VIDEO
CSIDL_DEFAULT_APPDATA
CSIDL_DEFAULT_LOCAL_APPDATA
CSIDL_DEFAULT_COOKIES
CSIDL_DEFAULT_CONTACTS
CSIDL_DEFAULT_DESKTOP
CSIDL_DEFAULT_DOWNLOADS
CSIDL_DEFAULT_FAVORITES
CSIDL_DEFAULT_HISTORY
CSIDL_DEFAULT_INTERNET_CACHE
CSIDL_DEFAULT_PERSONAL
CSIDL_DEFAULT_MYDOCUMENTS
CSIDL_DEFAULT_MYPICTURES
CSIDL_DEFAULT_MYMUSIC
CSIDL_DEFAULT_MYVIDEO
CSIDL_DEFAULT_RECENT
CSIDL_DEFAULT_SENDTO
CSIDL_DEFAULT_STARTMENU
CSIDL_DEFAULT_PROGRAMS
CSIDL_DEFAULT_STARTUP
CSIDL_DEFAULT_TEMPLATES
CSIDL_DEFAULT_QUICKLAUNCH
CSIDL_FONTS
CSIDL_PROGRAM_FILESX86
CSIDL_PROGRAM_FILES_COMMONX86
CSIDL_PROGRAM_FILES
CSIDL_PROGRAM_FILES_COMMON
CSIDL_RESOURCES
CSIDL_SYSTEM
CSIDL_WINDOWS
DEFAULTUSERPROFILE
PROFILESFOLDER
programfiles
PROGRAMFILES(X86)
system
SYSTEM16
SYSTEM32
SYSTEMPROFILE
systemroot
windir




Nom de la Variable
appdata
CSIDL_ADMINTOOLS
CSIDL_ALTSTARTUP
CSIDL_APPDATA
CSIDL_BITBUCKET
CSIDL_CDBURN_AREA
CSIDL_CONNECTIONS
CSIDL_CONTACTS
CSIDL_CONTROLS
CSIDL_COOKIES
CSIDL_DESKTOP
CSIDL_DESKTOPDIRECTORY
CSIDL_DRIVES
CSIDL_FAVORITES
CSIDL_HISTORY
CSIDL_INTERNET
CSIDL_INTERNET_CACHE
CSIDL_LOCAL_APPDATA
CSIDL_MYDOCUMENTS
CSIDL_MYMUSIC
CSIDL_MYPICTURES
CSIDL_MYVIDEO
CSIDL_NETHOOD
CSIDL_NETWORK
CSIDL_PERSONAL
CSIDL_PLAYLISTS
CSIDL_PRINTERS
CSIDL_PRINTHOOD
CSIDL_PROFILE
CSIDL_PROGRAMS
CSIDL_RECENT
CSIDL_SENDTO
CSIDL_STARTMENU
CSIDL_STARTUP
CSIDL_TEMPLATES
homepath
temp
tmp
userprofile
usersid




Nom de la Variable
%classpath%
%computername%
%ComSpec%
%CommonProgramW6432%
%FP_NO_HOST_CHECK%
%HOMEDRIVE%
%LOCALAPPDATA%
%winbootdir%
%logonserver%
%number_of_processors%
%os%
%os2libpath%
%pathext%
%processor_architecture%
%processor_identifier%
%processor_level%
%processor_revision%
%PROMPT%
%PSModulePath%
%PUBLIC%
%Path%
%ProgramData%
%ProgramW6432%
%QTJAVA%
%SAN_DIR%
%SystemDrive%
%userdomain%
%username%
%asl.log%
%configsetroot%
devmgr_show_nonpresent_devices