Peut Variables d'Environnement système être réglée via les Scripts d'ouverture de session Windows?
J'ai une MSI-emballés application est en cours de déploiement via la Stratégie de Groupe Objets (GPO) à partir d'un Domaine Windows 2003 Serveur à tous les client XP machines du réseau.
Cette application lit deux variables d'environnement pour les sa configuration (IPs serveur de parler) et il me semble que nous avions aussi envie de pousser cette configuration via un objet de stratégie de groupe de style ou le paramètre de script de Connexion pour tous les ordinateurs de bureau.
Quelle est la meilleure approche pour la définition des variables d'environnement à travers un réseau d'ordinateurs de bureau?
OriginalL'auteur Matthew McCullough | 2009-02-25
Vous devez vous connecter pour publier un commentaire.
Pourquoi ne pouvez-vous pas intégrer cette configuration dans la table de la Propriété de la MSI (post-construire, en utilisant une transformation), puis lire à partir de là? Ce serait faire beaucoup plus de sens... le feu jusqu'à Orca, ajouter un couple de propriétés, enregistrer une transformation et déployer par GPO avec transformation appliquée.
Edit: Viens de relire cette question... puis déployer les paramètres de la base de registre et l'application de lecture à partir de là, plutôt que de définir des variables d'environnement. Réglage global des variables d'environnement pour une application ne fait pas de sens pour les administrateurs de point de vue.
La raison pour laquelle nous ne pouvons pas utiliser le registre est l'app doit être multi-plateforme. Donc, je ne peux pas/ne veulent pas mettre de registre de lecture libs dans l'app 3p Pots. La variable d'environnement rend la croix-plate-forme. Le simple fait de partager les motivations. Le MST/Transformer a bien fonctionné pour nous. Merci pour l'inspiration!
OriginalL'auteur saschabeaumont
Ma recherche indique qu'il y a quatre façons de le faire. J'ai commencé à l' Microsoft Script d'ouverture de session pages de documentation et il s'est déployé à partir de là.
Script De Connexion Fichier De Commandes
Windows Server 2000, 2003, 2008
Connexion fichier batch (.Chauve-souris) les scripts sont juste une instance temporaire d'une fenêtre CMD, et les variables d'environnement définies dans y aller dès que la fenêtre d'ouverture de session se ferme.
Ne fonctionne pas pour la raison susmentionnée.
Donc, sinon, je peux essayer de définir la variable directement via l'écriture dans le registre comme pour une Variable d'Environnement Système:
ou à l'Utilisateur les Variables d'Environnement comme suit:
L'inconvénient ici est que les variables, bien qu'écrit dans le registre, ne sont pas lus jusqu'à la prochaine connexion pour tout ce que je peux voir. Une nouvelle fenêtre CMD montre aucune trace d'eux jusqu'à ce que le nouveau l'utilisateur ouvre une session.
Login Script WSH Fichier VBS
Windows Server 2000, 2003, 2008
Avec un Visual Basic Script (VBS) script de connexion, vous pouvez utiliser une méthode de programmation pour accéder aux variables d'environnement. C'est de ressembler à mon approche viable. Cet exemple serait d'ajouter à la fin du CHEMIN d'accès.
Cet exemple serait juste de définir la variable.
Cette approche produit des variables qui sont immédiatement disponibles via une fenêtre de commande. Aucun redémarrage n'est nécessaire comme le fichier de commandes de registre écrit.
Fichier ADM
Windows Server 2000, 2003, 2008
Les fichiers ADM sont un moyen d'exposer la fonctionnalité de personnalisation des paramètres de l'Éditeur de Stratégie de Groupe. Il semble difficile de les obtenir installé et visible sur le contrôleur de domaine, donc je suis sautant par-dessus cette option.
Le Support de Microsoft TechNet de Référence sur le SMA Emplacements des Fichiers.
Un autre article sur les fichiers ADM et de les utiliser pour définir des paramètres de Registre.
Tom's Hardware sur les Fichiers ADM.
Préférences de Stratégie de groupe (GPP)
Windows Server 2008
Windows Server 2008 hcomme une nouvelle fonctionnalité appelé le L'environnement des Extensions pour les Préférences de Stratégie de Groupe. Il vous permet de facilement définir ce que l'exige autrement complexe des scripts batch. Les nouveaux objets exposés comprennent des valeurs de registre, les variables d'environnement, et plus encore. Un moyen rapide guide d'utilisation est disponible ici.
Je ne peux pas utiliser cette option, car mes clients ne disposant pas de Windows Server 2008.
Résumé
S'il vous plaît dites moi sur la base de vos expériences en tant qu'Administrateurs de Windows qui de ces qui fonctionne le mieux et pourquoi. Je suis juste un bureau développeur, et ont besoin d'un admin insight.
Dans Windows 7, on peut utiliser
setx MYVAR MyValue
Je n'ai pas testé moi-même, mais en supposant que les variables d'environnement ne sont réinitialisés lorsque vous vous connectez et à nouveau, je pense que vous pouvez utiliser un autre
REG
de commande pour le récupérer. Ouais, c'est moche comme peut l'être, mais si c'est votre seule option, prendre un coup d'oeil à cette réponse qui explique comment faire pour obtenir une valeur arbitraire de la clé de registre, et obtenir une variable d'environnement devrait être plus facile.Je voulais expliquer pourquoi un redémarrage est requis lorsque vous modifiez les entrées de Registre utilisées par le Shell avec
REG
. L'extrait de code VBScript a un avantage important, car il peut se demander à partir de Windows une API qui comprend la Coque. Lorsque vous modifiez une variable à l'aide de l'API, Windows est au courant du changement et peut actualiser lui-même immédiatement.REG
est concerné par le registre et rien d'autre, de sorte qu'il modifie le Registre des valeurs qu'il devrait, mais Windows n'est jamais avisé qu'il doit recharger les variables d'environnement parce queREG
est juste trop faible d'un niveau.OriginalL'auteur Matthew McCullough
Vous pouvez toujours définir la variable d'environnement par le biais de votre script d'ouverture de session. Bien sûr!
C'est comment nous le faisons:
N'utilisez pas "ensemble" comme il n'est pas repris dans l'environnement utilisateur. Jeu de Variables avec "set" sont valables lors de la connexion de script en cours d'exécution-temps.
Utiliser "setx".
Donc, pour définir une variable dans les utilisateurs de notre environnement
(Note: Il n'est pas
=
signe comme ce serait le cas avecset MYSPECIALVAR=THIS_IS_THE_VALUE
)Si l'utilisateur a la gestion des droits sur le PC, vous pouvez aussi définir les variables à l'intérieur du système-environnement avec
(C'est la façon de nous déployer des variables dans le Pc avec installationscripts et administrative-droit)
OriginalL'auteur Windows-Scripter