Мы сейчас про 1С говорим.
1С в WshSysEnv.Item("PATH") возвращает СТРОКУ , а не объект (как наверное делает сам WSH).
А написать
WshSysEnv.Item("PATH") = WshSysEnv.Item("PATH") + ";D:\temp";
выдаст ошибку, так как 1С так делать не умеет.
Я уже выкрутился через
WshShell.Run("setx ""PATH"" ""+ТекПУТЬ+""",1,-1);
не совсем как хотелось, но проблему решило - добавило ПОЛЬЗОВАТЕЛЬСКУЮ переменную и занесло туда значение.
Система воспринимает копии системных переменных с таким же именем на ура.