Войти

Показать полную графическую версию : пишу переменную окружения тип Volatile wscript скриптом но не могу ее использовать .?


egor_siv
24-10-2006, 05:20
она есть в реестре HKCU\VolatileEnvironment\CLIENTIP="10.10.10.1"
и скриптом я ее вижу но в например в батнике ее использовать не могу
и командой "set" ее не видно


как сделать что бы %CLIENTIP% возвращал значение пременной окружения ???


так я пишу переменную :
Set objShell = WScript.CreateObject("WScript.Shell")
Set colUsrEnvVars = objShell.Environment("Volatile")
'Wscript.Echo colUsrEnvVars("CLIENTIP")
colUsrEnvVars("CLIENTIP") = "10.10.10.1"

XPurple
24-10-2006, 13:49
Imho для начала было бы неплохо записать ее как переменную окружения и посмотреть - какой записи в реестре это соответствует.
А скрипт вообще непонятно что делает: ключ в реестре не прописывает, тогда что он делает ?

amel27
24-10-2006, 14:32
egor_siv
штатными средствами никак - для применения нужна перегрузка профиля, но Volatile при этом зачистится, даже SETX на него не действует... разве только SetEnv поможет: http://oszone.net/3673
SetEnv -v CLIENTIP 10.10.10.1

egor_siv
25-10-2006, 09:42
для чего перегрузка профиля если это переменная действует только во время сессии
Volatile
Applies to current logon session and is not saved between logoffs and restarts
источник http://www.microsoft.com/technet/scriptcenter/guide/sas_wsh_kmmj.mspx?mfr=true

XPurple
как раз этот скрипт пишет переменную в реестр HKCU\VolatileEnvironment\CLIENTIP="10.10.10.1"

amel27
25-10-2006, 10:03
egor_siv
для чего перегрузка профиля
чтобы обновить окружение - если править реестр напрямую (скриптом не пробовал) в том числе и для ветки \Environment

XPurple
25-10-2006, 11:29
egor_siv
как раз этот скрипт пишет переменную в реестр HKCU\VolatileEnvironment\CLIENTIP="10.10.10.1"

Чем докажете ?

1.Берем ваш текст
2.Cохраняем в файле script.vbs
3. Запускаем
4. Ничего не происходит ( в реестре должны появиться 2 записи - их нет)

egor_siv
25-10-2006, 11:49
как нет смотрите HKCU\VolatileEnvironment\
cscript script.vbs
не две а одна, почему две ?

XPurple
25-10-2006, 13:12
Я исходил из того,что вы заведете переменную окружения через "Система->Дополнительно->Переменные среды".
Ну ошибся
Т.е. я исходил из такого скрипта

Set objShell = WScript.CreateObject("WScript.Shell")
objShell.RegWrite "HKEY_CURRENT_USER\Environment\Clientip", "10.10.10.1"


две

Я имел ввиду ключ в HKEY_USERS.

Micrus
25-10-2006, 13:17
у меня все работает на winxp SP2 Eng

а зачем IP-адрес прописывать в качестве переменной окружения, ведь его можно узнать другими способами. Например, через WMI

XPurple
25-10-2006, 13:32
egor_siv
Кстати, после перезагрузки профиля все работает и в вашем скрипте и в моем.
Еще раз , извиняюсь.
По команде set clientip и там и там выдает 10.10.10.1.

Applies to current logon session and is not saved between logoffs and restarts
Загадка...




© OSzone.net 2001-2012