You are currently offline, waiting for your internet to reconnect

How to propagate environment variables to the system

Support for Windows XP has ended

Microsoft ended support for Windows XP on April 8, 2014. This change has affected your software updates and security options. Learn what this means for you and how to stay protected.

Support for Windows Server 2003 ended on July 14, 2015

Microsoft ended support for Windows Server 2003 on July 14, 2015. This change has affected your software updates and security options. Learn what this means for you and how to stay protected.

This article was previously published under Q104011
SUMMARY
You can modify user environment variables by editing the followingRegistry key:
   HKEY_CURRENT_USER \          Environment				
You can modify system environment variables by editing the followingRegistry key:
   HKEY_LOCAL_MACHINE \                SYSTEM \     CurrentControlSet \               Control \       Session Manager \           Environment				
Note that any environment variable that needs to be expanded (for example,when you use %SYSTEM%) must be stored in the registry as a REG_EXPAND_SZregistry value. Any values of type REG_SZ will not be expanded when readfrom the registry.

Note that RegEdit.exe does not have a way to add REG_EXPAND_SZ. UseRegEdt32.exe when editing these values manually.

However, note that modifications to the environment variables do notresult in immediate change. For example, if you start another CommandPrompt after making the changes, the environment variables will reflect theprevious (not the current) values. The changes do not take effect until youlog off and then log back on.

To effect these changes without having to log off, broadcast aWM_SETTINGCHANGE message to all windows in the system, so that anyinterested applications (such as Windows Explorer, Program Manager, Task Manager, ControlPanel, and so forth) can perform an update.
MORE INFORMATION
For example, on Windows NT-based systems, the following code fragment should propagatethe changes to the environment variables used in the Command Prompt:
   SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0,    (LPARAM) "Environment", SMTO_ABORTIFHUNG,    5000, &dwReturnValue);				
None of the applications that ship with Windows 95 and Windows 98, including Windows Explorer and ProgramManager, respond to this message. Thus, while this articlecan technically be implemented on Windows 95 and Windows 98, there is no effect except tonotify third-party applications. The only method of changing globalenvironment variables on Windows 95 is to modify the autoexec.bat file andreboot.
Properties

Article ID: 104011 - Last Review: 01/18/2007 22:40:24 - Revision: 5.3

Microsoft Windows Server 2003, Datacenter Edition (32-bit x86), Microsoft Windows Server 2003, Enterprise Edition (32-bit x86), Microsoft Windows Server 2003, Standard Edition (32-bit x86), Microsoft Windows Server 2003, Web Edition, Microsoft Windows XP Home Edition, Microsoft Windows XP Media Center Edition, Microsoft Windows XP Professional, Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Datacenter Server, Microsoft Windows 2000 Professional Edition, Microsoft Windows 2000 Server, Microsoft Windows NT 4.0, Microsoft Windows NT Server 3.51

  • kbhowto kbsyssettings KB104011
Feedback
ClickTracking = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write(" orLargeScreens track by $index" class="col-sm-6 col-xs-24 ng-scope"> El Salvador - Español
Panamá - Español
Uruguay - Español
대한민국 - 한국어
España - Español
Paraguay - Español
Venezuela - Español
DI=4050&did=1&t=">=1&t="> var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write(" DI=4050&did=1&t=">ument.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> 0&did=1&t=">