Jump to content

über VBScript Benutzervariablen ändern?


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

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.

Geschrieben

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

Geschrieben

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?

Geschrieben

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

Geschrieben

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.

Geschrieben

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...

Geschrieben

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

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...