# Setting permanent Environment Variables via VBscript or GPO xp/vista?



## markm75 (Jan 26, 2007)

I need a way to set an environment variable based on the type of OS 
installed.. ie: If the OS is 32bit only, then I need to set an 
environment variable %ProgramFilesx86%= "" (blank), if the envronment 
is 64bit, then I want something like %ProgramFilesX86"= the x86 path 
here... 

The reason for this is a coding language used in an application cannot 
handle the "(x86)" part of the default environment variables.. there 
is no way around it.. so the only way is to create a new environment 
variable 


Does anyone know of a way to do this via GPO.. or is there some other 
way that wouldnt involve a GPO? 

I tried this with a vbs file.. which worked fine in XP, but not in vista..

Here was my VBS code:

Set WshShell = CreateObject("WScript.Shell")

' makes environment settings permanent
Set WshSystemEnv = WshShell.Environment("SYSTEM")


' Set environment variable
WshSystemEnv("test") = "1234"

I got a permission denied on the last line.

I also tried using the schtasks.exe method of scheduling the vbs script at logon for Vista, as I do with the mapped drives situation, but this wasnt even working, gave me access denied errors just running the schtasks.exe command...


If I try this during the login script, it gets lost after the 
login.bat window closes... 


This needs to stay in "memory" while the OS is running, after the 
login script.. 


(I've seen some examples of doing environment variables via GPO ADM 
templates, but I'm not sure how to make it dynamic based on if the 
program files (x86) folder exists or not) 


Any help would be great. 


Thanks


----------



## Knuds (Feb 12, 2008)

UAC in Vista - therfor you vbs wil not function correctly.

User Account Control og Vista will runs vbs scripts without administrative privileges.

You can disable this Vista security with a vbs script or set it in GPO but only with a 2008 servier or a Vista maschine in the same domain.

Her you have the vbs script.

WshShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system\EnableLUA","0","REG_DWORD"

You can also make this change directly in regedit and set this key EnableLUA to 0.

I hope this will help you.

Knud Schrøder
Systemadmin

;o)


----------

