marka 584 Geschrieben 15. Januar 2007 Melden Teilen Geschrieben 15. Januar 2007 Hallo zusammen, wieder mal eine Frage von mir an die Scripting-Spezis. Ich möchte, um mir das Einrichten neuer PCs an unsere neue Umgebung zu erleichtern, ein VB-Script schreiben. Etliche Teile sind schon fertig. Ein Teil des Scriptes ist, die Benutzervariablen %TMP% und %TEMP% zu ändern. Dazu habe ich nun folgenden Code, um die Werte abzufragen: ' VBScript 'Benutzervariablen %temp% und %tmp% ermitteln Set wshshell = CreateObject("WScript.Shell") usertemp = wshshell.ExpandEnvironmentStrings("%TEMP%") usertmp = wshshell.ExpandEnvironmentStrings("%TMP%") usertemps = "Benutzervariablen für temporäre Dateien:" & VbCr &_ "%TEMP%: " & "'" & usertemp & "'" & VbCr &_ "%TMP%: " & "'" & usertmp & "'" result = MsgBox ( usertemps,vbokonly + VbExclamation, "Ergebnis:") Wie kann ich die Werte nun ändern und zurückschreiben? Dank im Voraus. Zitieren Link zu diesem Kommentar
woiza 10 Geschrieben 15. Januar 2007 Melden Teilen Geschrieben 15. Januar 2007 Hi, wenn es ne Usersspezifische Umgebungsvariable sein soll, muss diese unter "HKEY_CURRENT_USER\Environment" in der Registry gespeichert werden. Die systemweiten stehen unter "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" . Diese können mit vbs mit der RegWrite Methode geschrieben werden. Gruß woiza Zitieren Link zu diesem Kommentar
marka 584 Geschrieben 15. Januar 2007 Autor Melden Teilen Geschrieben 15. Januar 2007 Ist das der einzige Weg? Ich kann ja auch in den Word-Optionen z.B. den Standard Dokumentenspeicherpfad via VBS ändern: 'Neuen Dokumentenpfad setzen Const wdDocumentsPath = 0 Set objWord = CreateObject("Word.Application") Set objOptions = objWord.Options objOptions.DefaultFilePath(wdDocumentsPath) = "U:\Worddokumente" objWord.Quit Geht das nicht auch in der Art? Zitieren Link zu diesem Kommentar
woiza 10 Geschrieben 15. Januar 2007 Melden Teilen Geschrieben 15. Januar 2007 Hm, die Office-Variablen liegen aber auch an anderer Stelle. Kann sein, dass es anders geht, mir wäre kein Weg bekannt. Zitieren Link zu diesem Kommentar
Das Urmel 10 Geschrieben 15. Januar 2007 Melden Teilen Geschrieben 15. Januar 2007 Hi dafür nimmt man besser setX.exe - aus den XP-Supporttools. Zitieren Link zu diesem Kommentar
woiza 10 Geschrieben 15. Januar 2007 Melden Teilen Geschrieben 15. Januar 2007 Ich nehms zurück. Es geht auch mit WMI. Schau dir mit Scriptomatic oder so mal Win32_environment an. (Ich verwende mittlerweile den WMI Code Creator von MS). Hier mal ein Beispiel zum Auslesen mit WMI: strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") Set colItems = objWMIService.ExecQuery( _ "SELECT * FROM Win32_Environment",,48) For Each objItem in colItems Wscript.Echo "-----------------------------------" Wscript.Echo "Win32_Environment instance" Wscript.Echo "-----------------------------------" Wscript.Echo "Caption: " & objItem.Caption Wscript.Echo "Description: " & objItem.Description Wscript.Echo "InstallDate: " & objItem.InstallDate Wscript.Echo "Name: " & objItem.Name Wscript.Echo "Status: " & objItem.Status Wscript.Echo "SystemVariable: " & objItem.SystemVariable Wscript.Echo "UserName: " & objItem.UserName Wscript.Echo "VariableValue: " & objItem.VariableValue Next Zitieren Link zu diesem Kommentar
marka 584 Geschrieben 15. Januar 2007 Autor Melden Teilen Geschrieben 15. Januar 2007 Word legt seine Temporären Dateien auch im %TMP% & %TEMP% ab, das haben wir schon getestet. Darum geht es in denm Script, diverse Word-Einstellungen ändern sowie den Temp-Pfad anpassen, um ihn remote besser ausmisten zu können. Zitieren Link zu diesem Kommentar
marka 584 Geschrieben 15. Januar 2007 Autor Melden Teilen Geschrieben 15. Januar 2007 OK, THX, ich teste das mal... Zitieren Link zu diesem Kommentar
woiza 10 Geschrieben 15. Januar 2007 Melden Teilen Geschrieben 15. Januar 2007 Klar, die temporären legt Word auch in %TEMP%, allerdings wird in dem VBA ja der Dokumentspeicherort geändert. Dieser liegt an anderer Stelle. Zitieren Link zu diesem Kommentar
marka 584 Geschrieben 15. Januar 2007 Autor Melden Teilen Geschrieben 15. Januar 2007 Das ist richtig, aber unsere Temp-Ordner sollen auch verändert werden. Ich dachte, das ginge ähnlich einfach, wie bei den Word-Options... Wie ist denn die genaue Synthax von RegWrite? In meinem Buch steht das nicht sauber beschrieben... Zitieren Link zu diesem Kommentar
woiza 10 Geschrieben 15. Januar 2007 Melden Teilen Geschrieben 15. Januar 2007 Hi, hier gibts die Windows Script Doc, die ist ganz gut. Ist ein einzelnes chm. Ich kann dir mal ein Beispiel aus der Hilfe kopieren: Dim WshShell, bKey Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.RegWrite "HKCU\Software\ACME\FortuneTeller\", 1, "REG_BINARY" WshShell.RegWrite "HKCU\Software\ACME\FortuneTeller\MindReader", "Goocher!", "REG_SZ" bKey = WshShell.RegRead("HKCU\Software\ACME\FortuneTeller\") WScript.Echo WshShell.RegRead("HKCU\Software\ACME\FortuneTeller\MindReader") WshShell.RegDelete "HKCU\Software\ACME\FortuneTeller\MindReader" WshShell.RegDelete "HKCU\Software\ACME\FortuneTeller\" WshShell.RegDelete "HKCU\Software\ACME\" Gruß woiza Zitieren Link zu diesem Kommentar
marka 584 Geschrieben 15. Januar 2007 Autor Melden Teilen Geschrieben 15. Januar 2007 Aha, gut! Besten Dank, werd's morgen gleich mal testen. <Nachtrag> Getestet --> Klappt wunnäbaar!! Fettes Danke! </Nachtrag> Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.