slako29
Goto Top

Variablen im Login-Script

Hallo Leute,

ich habe mehere Loginscripts als normale .bat Datei. Dort habe ich bisher nur die Netzlaufwerke zugeteilt und ab und zu mal ein Programm daraus gestartet. Jetzt möchte ich für einige Rechner per Loginscript (vieleicht auch per Policy?) eine Umgebungsvariale mit dem SET-Befehl setzen. Im Loginscript habe ich das schon getestet funktioniert irgenwie nicht. Was mache ich falsch? Oder muss ich dazu vom Loginscript aus eine weitere Batchdatei starten?

Content-Key: 86702

Url: https://administrator.de/contentid/86702

Ausgedruckt am: 28.03.2024 um 13:03 Uhr

Mitglied: colinardo
colinardo 30.04.2008 um 09:27:38 Uhr
Goto Top
Hallo,

das was du versuchst kann in diesem Fall nicht funktionieren, weil alles was du in einem Script in der %PATH% Variable definierst nur lokal für dieses Script erhalten bleibt und nicht global gespeichert wird. D.h. wenn das Script fertig ist, ist dein Eintrag auch wieder verschwunden.
Die systemweite Erweiterung der %Path% dürfen normalerweise nur Adminisratoren des PC's vornehmen d.h. der Benutzer der sich am Rechner anmeldet muss lokal Administratorrechte besitzen.
Du kannst globale Variablen hinzufügen in dem du ..

a.)
Rechtsklick "Arbeitsplatz" / Eigenschaften, Reiter "Erweitert", und dann Button Umgebungsvariablen klickst, und dann im unteren Teil des Dialogs unter "Systemvariablen" die %Path% Variable ergänzt. Wichtig ist das der Pfad mit einem ";" abschließt.

oder

b.) In der Registry unter dem Schlüssel :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
die Variable "Path" um deine erweiterst.  

oder

c.) Per WMI mit folgendem Befehl unter XP die Variable aktualisieren:

wmic Environment where (SystemVariable=TRUE AND Name='Path') set VariableValue='C:\hier dein Pfad;'  


Wenn du die erste Methode benutzt steht deine Erweiterung sofort allen weiteren Skripten zu Verfügung. Da Windows sie direkt nach dem schließen des Dialogs aktualisiert. Mit der zweiten Methode scheint mir geht das nicht. Ich suche noch nach einer Lösung wie man die aktualisierung anstoßen kann.
Per WMI erscheint mir als die beste Lösung. Das kannst du auch per VBS-Script verfassen und dann in der CMD aufrufen.

hier noch schnell das VBS Script:

Dieses Script ergänzt die vorhandenen Pfade um deinen:

strComputer = "."  
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
Set colItems = objWMIService.ExecQuery("Select * from Win32_Environment where SystemVariable = True AND Name='Path'")  

For Each objItem in colItems
	objItem.VariableValue = objItem.VariableValue & "C:\deinPfadhier;"  
	objItem.Put_
Next

Hoffe das hilft dir weiter face-wink
Mitglied: slako29
slako29 30.04.2008 um 10:34:41 Uhr
Goto Top
Danke für die Hilfe, ich habs jetzt folgendermassen gemacht:

Die Benutzervariablen stehen on der Registry unter: HCU\Environment

Hab dort dann meine Variable eingegeben und den Schlüssel exportiert. Diesen Schlüssel importiere ich dann in meinen Loginscript mit reg import von einen gemeinsamen Server aus.

Danach starte ich meinen Rechner 2x und dann gehts.
Mitglied: 60730
60730 30.04.2008 um 11:07:43 Uhr
Goto Top
Servus,

mach sowas "richtig" - also mit Abfrage. Sonst ist dein nächster Beitrag - wie bekomme ich doppelte Regwerte aus der Registry raus....

Kix bietet sowas z.B an - oder eine Batch ala:

if not exists c:\irgendwohin\reg goto import
goto end
:import
copy \\server.reg c:\irgendwohin\reg
regedit /s c:\irgendwohin\reg
shutdown.exe -l
:end

gruß