Kann system-Umgebungsvariablen festgelegt werden, die über Windows-Logon-Scripts?
Ich habe ein MSI-verpackt Anwendung, die bereitgestellt wird, mittels Group Policy Objects (GPO) " von einem Windows 2003 Domain Server alle XP-client-Computern im Netzwerk.
Diese Anwendung liest zwei Umgebungsvariablen, die für seine Konfiguration (server-IPs zu reden) und wie es scheint, würden wir auch wollen, drücken Sie diese Konfiguration über eine GPO-Einstellung "Stil" - oder Login-script auf allen desktops.
Was ist der beste Ansatz für das setzen von environment-Variablen, die über ein Netzwerk von desktops?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum kann man nicht einbetten, diese Konfiguration in der Tabelle Property der MSI - (post-build, mithilfe einer Transformation) und Lesen Sie dann von dort aus? Dies würde sehr viel mehr Sinn... fire up Orca, fügen Sie ein paar Eigenschaften, speichern Sie eine Transformation und die Bereitstellung über das GPO mit der Transformation angewendet.
Edit: Gerade noch mal gelesen, diese Frage... dann deploy-Einstellungen auf der registry und die Anwendung Lesen Sie von dort aus, anstatt das setzen von environment-Variablen. Einstellung globalen Umgebungsvariablen, die für eine Anwendung nicht sinnvoll ist, für eine Administratoren-Sicht.
Meine Forschung sagt, es gibt vier Möglichkeiten, dies zu tun. Ich begann an der Microsoft Logon-Script-Dokumentation, Seiten und aufgefächert von dort.
Login-Skript, Batch-Datei
Windows Server 2000, 2003, 2008
Login-batch-Datei (.BAT) scripts sind nur eine temporäre Instanz von CMD-Fenster, und die Umgebungsvariablen gesetzt, dort gehen Weg, sobald das login-Fenster schließt.
Nicht für die oben genannten Grund.
So, alternativ kann ich versuchen, die variable per direkt schreiben in die Registrierung wie so für eine System-Environment-Variable:
oder Benutzer Umgebungsvariablen wie so:
Der Nachteil hier ist, dass die Variablen, obwohl die registry geschrieben, nicht gelesen werden, und bis zum nächsten login für alle, die ich sehen kann. Ein neues CMD-Fenster zeigt keine Spur von Ihnen, bis sich der Benutzer erneut anmeldet-in.
Login-Script WSH-VBS-Datei
Windows Server 2000, 2003, 2008
Mit einem Visual Basic Script (VBS) login-Skript, können Sie eine weitere programmgesteuerte Methode zum Zugriff auf die Umgebungsvariablen. Dieser sucht, wie die meisten meiner brauchbarer Ansatz. In diesem Beispiel würde anfügen an das Ende von PATH.
In diesem Beispiel würde nur die variable setzen.
Dieser Ansatz ergibt Variablen, die sofort verfügbar sind über ein CMD-Fenster. Kein Neustart ist erforderlich, wie die batch-Datei, die registry schreibt.
ADM-Datei
Windows Server 2000, 2003, 2008
ADM-Dateien sind eine Möglichkeit zur Bereitstellung von benutzerdefinierten Funktionen von Einstellungen der Gruppenrichtlinien-Editor. Es scheint schwierig zu bekommen, Sie installiert und sichtbar auf dem Domänencontroller so, ich bin beim Sprung über diese option.
Support von Microsoft TechNet-Referenz auf ADM-Datei Standorten.
Ein weiterer Artikel über das ADM-Dateien und mit Ihnen zu set Registry-Einstellungen.
Tom ' s Hardware auf der ADM-Dateien.
Group Policy Preferences (GPP)
Windows Server 2008
Windows Server 2008 hals neues feature genannt Umgebung Erweiterungen bei den Group Policy Preferences. Es ermöglicht Ihnen, bequem zu setzen, was sonst erforderlichen komplexen batch-Skripten. Die neuen Elemente ausgesetzt beinhalten registry-Werte, Umgebungsvariablen und vieles mehr. Ein kurzes how-to-guide ist hier verfügbar.
Kann ich nicht verwenden Sie diese option, weil meine Kunden nicht Windows Server 2008.
Zusammenfassung
Bitte sagen Sie mir, basierend auf Ihren Erfahrungen als Windows-Administratoren, welche dieser am besten funktioniert und warum. Ich bin nur ein desktop-Entwickler, und brauchen ein admin der Einsicht.
setx MYVAR MyValue
REG
Befehl, um es abzurufen. Ja, es ist hässlich, wie sein kann, aber wenn es Ihre einzige option, werfen Sie einen Blick auf die Antwort, die erklärt, wie man einen bestimmten Wert in eine beliebige registry-Schlüssel, und immer eine environment-variable sollte es einfacher sein.REG
. Die VBScript-Schnipsel hat einen erheblichen Vorteil, denn es kann die Anfrage von Windows eine API, versteht die Shell. Wenn Sie eine variable ändern mit dieser API, Windows ist bewusst, ändern und aktualisieren sich sofort.REG
befasst sich mit der Registrierung und sonst nichts, so ändert es die Registry-Werte, dass es sollte, aber Windows ist nie mitgeteilt, dass es braucht, um neu zu laden Sie die Umgebungsvariablen weilREG
ist nur auf einer zu niedrigen Ebene.Können Sie immer legen Sie die Umgebungsvariable durch Ihre login-Skript. Natürlich!
So, wie wir es tun:
Nicht verwenden "eingestellt", da es nicht übernommen in der Benutzer-Umgebung. Variablen, die mit "set" sind nur gültig, während die login-Skript-Laufzeit.
Verwenden "setx".
So, um eine variable zu setzen, innerhalb der Benutzer fern
(Hinweis: Es gibt keine
=
- Zeichen, als es der Fall wäre, mitset MYSPECIALVAR=THIS_IS_THE_VALUE
)Wenn der Benutzer über Verwaltung-Rechte auf dem PC könnte man auch die Variablen innerhalb des global-system-Umwelt mit
(Das ist die Art, wie wir die Bereitstellung von Variablen während des gesamten PCs mit installationscripts und administrative-Rechte)