setx

Crée ou modifie des variables d’environnement dans l’environnement utilisateur ou système, sans nécessiter de programmation ni de script. La commande Setx récupère également les valeurs des clés de registre et les écrit dans des fichiers texte.

Notes

Cette commande fournit le seul moyen de ligne de commande ou par programme de définir directement et définitivement des valeurs d’environnement système. Les variables d’environnement système sont configurables manuellement via le Panneau de configuration ou via un éditeur de registre. La commande set, qui est interne à l’interpréteur de commandes (Cmd.exe), définit les variables d’environnement utilisateur pour la fenêtre de console actuelle uniquement.

Syntaxe

setx [/s <computer> [/u [<domain>\]<user name> [/p [<password>]]]] <variable> <value> [/m]
setx [/s <computer> [/u [<domain>\]<user name> [/p [<password>]]]] <variable>] /k <path> [/m]
setx [/s <computer> [/u [<domain>\]<user name> [/p [<password>]]]] /f <filename> {[<variable>] {/a <X>,<Y> | /r <X>,<Y> <String>} [/m] | /x} [/d <delimiters>]

Paramètres

Paramètre Description
/s <computer> Spécifie le nom ou l’adresse IP d’un ordinateur distant. N’utilisez pas de barres obliques inverses. La valeur par défaut est le nom de l'ordinateur local.
/u [<domain>\]<user name> Exécute le script avec les identifiants du compte d’utilisateur spécifié. La valeur par défaut est les autorisations système.
/p [<password>] Spécifie le mot de passe du compte d'utilisateur spécifié dans le paramètre /u.
<variable> Spécifie le nom de la variable d’environnement que vous souhaitez définir.
<value> Spécifie la valeur sur laquelle vous souhaitez définir la variable d’environnement.
/k <path> Spécifie que la variable est définie en fonction des informations d’une clé de registre. Le chemin utilise la syntaxe suivante : \\<HIVE>\<KEY>\...\<Value>. Par exemple, vous pouvez spécifier le chemin suivant : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName
/f <filename> Spécifie le fichier que vous souhaitez utiliser.
/a <X>,<Y> Spécifie les coordonnées absolues et le décalage en tant que paramètres de recherche.
/r <X>,<Y> <String> Spécifie les coordonnées relatives et le décalage de String en tant que paramètres de recherche.
/m Spécifie de définir la variable dans l’environnement système. Le paramètre par défaut est l’environnement local.
/x Affiche les coordonnées de fichier, en ignorant les options de ligne de commande /a, /r et /d.
/d <delimiters> Spécifie des délimiteurs tels que , ou \ à utiliser en plus des quatre délimiteurs intégrés : SPACE, TAB, ENTER et LINEFEED. Les délimiteurs valides incluent n’importe quel caractère ASCII. Le nombre maximal de délimiteurs est de 15, y compris les délimiteurs intégrés.
/? Affiche l'aide à l'invite de commandes.

Notes

  • Cette commande est similaire à l’utilitaire UNIX SETENV.

  • Vous pouvez utiliser cette commande pour définir des valeurs pour les variables d’environnement utilisateur et système à partir de l’une des trois sources (modes) : Mode ligne de commande, Mode registre ou Mode fichier.

  • Cette commande écrit des variables dans l’environnement maître dans le registre. Les variables définies avec des variables setx sont disponibles uniquement dans les fenêtres de commande futures, et non dans la fenêtre de commande actuelle.

  • HKEY_CURRENT_USER et HKEY_LOCAL_MACHINE sont les seules ruches prises en charge. REG_DWORD, REG_EXPAND_SZ, REG_SZ et REG_MULTI_SZ sont les types de données RegKey valides.

  • Si vous avez accès aux valeurs REG_MULTI_SZ dans le registre, seul le premier élément est extrait et utilisé.

  • Vous ne pouvez pas utiliser cette commande pour supprimer les valeurs ajoutées aux environnements locaux ou système. Vous pouvez utiliser cette commande avec un nom de variable et aucune valeur pour supprimer une valeur correspondante de l’environnement local.

  • Les valeurs de registre REG_DWORD sont extraites et utilisées en mode hexadécimal.

  • Le mode Fichier prend en charge l’analyse des fichiers texte à changement de ligne avec retour chariot (CRLF) et de flux de ligne uniquement.

  • L’exécution de cette commande sur une variable existante supprime toutes les références de variable et utilise des valeurs développées.

    Par exemple, si la variable %PATH% a une référence à %JAVADIR%, et %PATH% est manipulée à l’aide de setx, %JAVADIR% est développée et sa valeur est affectée directement à la variable cible %PATH%. Cela signifie que les futures mises à jour de %JAVADIR% ne seront pas reflétées dans la variable %PATH%.

  • N’oubliez pas qu’il existe une limite de 1 024 caractères lors de l’affectation de contenu à une variable à l’aide de setx.

    Cela signifie que le contenu est rogné si vous dépassez 1 024 caractères et que le texte rogné est celui appliqué à la variable cible. Si ce texte rogné est appliqué à une variable existante, cela peut entraîner la perte de données précédemment détenues par la variable cible.

Exemples

Pour définir la variable d’environnement MACHINE dans l’environnement local sur la valeur Brand1, tapez :

setx MACHINE Brand1

Pour définir la variable d’environnement MACHINE dans le système environnement sur la valeur Brand1 Computer, tapez :

setx MACHINE Brand1 Computer /m

Pour définir la variable d’environnement MYPATH dans l’environnement local afin d’utiliser le chemin de recherche défini dans la variable d’environnement PATH, tapez :

setx MYPATH %PATH%

Pour définir la variable d’environnement MYPATH dans l’environnement local afin d’utiliser le chemin de recherche défini dans la variable d’environnement PATH après avoir remplacé ~ par %, tapez :

setx MYPATH ~PATH~

Pour définir la variable d’environnement MACHINE dans l’environnement local sur Brand1 sur un ordinateur distant nommé computer1, tapez :

setx /s computer1 /u maindom\hiropln /p p@ssW23 MACHINE Brand1

Pour définir la variable d’environnement MYPATH dans l’environnement local afin d’utiliser le chemin de recherche défini dans la variable d’environnement PATH sur un ordinateur distant nommé computer1, tapez :

setx /s computer1 /u maindom\hiropln /p p@ssW23 MYPATH %PATH%

Pour définir la variable d’environnement TZONE dans l’environnement local sur la valeur trouvée dans la clé de registre RegistreHKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName, tapez :

setx TZONE /k HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName

Pour définir la variable d’environnement TZONE dans l’environnement local d’un ordinateur distant nommé computer1 sur la valeur trouvée dans la clé de registre RegistreHKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName, tapez :

setx /s computer1 /u maindom\hiropln /p p@ssW23 TZONE /k HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName

Pour définir la variable d’environnement BUILD dans l’environnement système sur la valeur trouvée dans la clé de registre HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber, tapez :

setx BUILD /k HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber /m

Pour définir la variable d’environnement BUILD dans l’environnement système d’un ordinateur distant nommé Computer1 sur la valeur trouvée dans la clé de registre HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber, tapez :

setx /s computer1 /u maindom\hiropln /p p@ssW23  BUILD /k HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\CurrentBuildNumber /m

Pour afficher le contenu d’un fichier nommé Ipconfig.out, ainsi que les coordonnées correspondantes du contenu, tapez :

setx /f ipconfig.out /x

Pour définir la variable d’environnement IPADDR dans l’environnement local sur la valeur trouvée à la coordonnée 5,11 dans le fichier Ipconfig.out, tapez :

setx IPADDR /f ipconfig.out /a 5,11

Pour définir la variable d’environnement OCTET1 dans l’environnement local sur la valeur trouvée à la coordonnée 5,3 dans le fichier Ipconfig.out avec les délimiteurs #$*., tapez :

setx OCTET1 /f ipconfig.out /a 5,3 /d #$*.

Pour définir la variable d’environnement IPGATEWAY dans l’environnement local sur la valeur trouvée à la coordonnée 0,7 par rapport à la coordonnée de passerelle dans le fichier Ipconfig.out, tapez :

setx IPGATEWAY /f ipconfig.out /r 0,7 Gateway

Pour afficher le contenu du fichier Ipconfig.out, ainsi que les coordonnées correspondantes du contenu, sur un ordinateur nommé computer1, tapez :

setx /s computer1 /u maindom\hiropln /p p@ssW23 /f ipconfig.out /x