From: Gordon Thiesfeld Date: 2006-08-16T02:11:26+09:00 Subject: Re: Setting Windows Environment Variables You can use WMI via win32ole: require 'win32ole' def append_to_system_path(path) wmi = WIN32OLE.connect("winmgmts:\\\\.\\root\\cimv2") wql = "Select * from Win32_Environment Where Name = 'PATH' and UserName = ''" system_path = wmi.ExecQuery(wql) system_path.each do |i| i.VariableValue += ";#{path}" i.Put_ end end def create_environment_variable(var_name, value) wmi = WIN32OLE.connect("winmgmts:\\\\.\\root\\cimv2") env_var = wmi.Get('Win32_Environment').SpawnInstance_ env_var.Name = var_name env_var.UserName = "" env_var.VariableValue = value env_var.Put_ end path = "C:\\something_you_want_appended" append_to_system_path(path) var_name = 'test' value = 'SOME_VALUE' create_environment_variable(var_name, value)