Спрашивающий
пишу переменную окружения тип Volatile wscript скриптом но не могу ее использовать .?

Вопрос
-
она есть в реестре 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"- Перемещено Nikita PanovModerator 7 мая 2009 г. 6:41 вопрос по разработке ([Loc]From:Windows Server 2003/2000/NT)
24 октября 2006 г. 5:45
Все ответы
-
Повторил:
1. cmd> set CLIENTIP
>10.10.10.1
2. cmd>echo %CLIENTIP%
>10.10.10.1
======================
Все работает ...
24 октября 2006 г. 9:35 -
если я пишу ручками
set CLIENTIP=10.10.10.1
а затем
echo %CLIENTIP%
то все нормально
10.10.10.1
но если скриптом выше описанным то
echo %CLIENTIP%
возвращает
%CLIENTIP%25 октября 2006 г. 3:47 -
Егор,
Я
1. Беру твой пример и записываю его в temp.vbs и запускаю temp.vbs
2. Запускаю regedit и проверяю, указанный тобой ключ HCU\Violate Environment\CLIENTIP
3. Запускаю cmd
4. Выполняю команду
cmd> echo %CLIENTIP%
5. Получаю
cmd>10.10.10.1
==================================
Больше НИЧЕГО не делаю ... все работает.
25 октября 2006 г. 4:05 -
этот скрипт стоит в логин скриптах через политики групп
логинюсь к серверу
смотрю в реестре появилась эта переменная
C:\>echo %CLIENTIP%
%CLIENTIP%C:\>cscript tmp.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.C:\siv>echo %CLIENTIP%
%CLIENTIP%запускаю другую задачу в той же сессии
C:\>echo %CLIENTIP%
10.10.10.1как это победить не пойму , мне надо чтобы эта переменная прописывалась при логине
именно wscript ом и чтобы потом можно было пользовать её
25 октября 2006 г. 5:29 -
Никак не победите. Дело в том, что каждый процесс получает свою копию переменных окружения на момент его (процесса) создания. Поэтому вы и не видите свою новую переменную окружения до тех пор, пока не создали новый процесс.
- Предложено в качестве ответа Nikita PanovModerator 7 мая 2009 г. 6:33
25 октября 2006 г. 6:02Модератор -
Что то я не понял
т.е. другими словами если я создаю переменную окружения в скрипте логина то я ее ни когда не увижу ?
этого не может быть .
25 октября 2006 г. 7:40 -
Увидите
Сначала запускается корневой процесс пользователя, затем дочерний процесс логон скрипта, который создает переменную окружения, завершается, но среда корневого процесса осталась прежней - переменную не видим, запукаем новый процесс - видим новое окружение и новую переменную.
Причина видимо в том, что скрипт пишет переменную прямо в реестр, но не в окружение вышестоящего процесса.
25 октября 2006 г. 11:10Модератор -
как мне тогда писать переменную в окружение вышестоящего процесса ?26 октября 2006 г. 8:45
-
Сформулируйте задачу, которую вы хотите решить. А то не понятен ваш выбор средств решения.
Так сначала вы используете wscript, а потом команду SET. Примените wscript и во втором случае.
26 октября 2006 г. 10:42Модератор -
IMHO, можно использовать стартап (а не логон) скрипт и создавать не пользовательскую (а системную) переменную окружения. Тогда во время запуска логон скриптов нужная вам переменная окружения всегда будет существовать для любого процесса.
2 sie +1
полностью согласен с тем, что
sie написано: Сформулируйте задачу, которую вы хотите решить. А то не понятен ваш выбор средств решения.
28 октября 2006 г. 18:17 -
sie формулирую
есть прога которая запускает cmd-файлик в котором используется ip клиента который прописан явно
пример:
ping 10.10.10.12 далее анализируем результат . ...
необходимо привести к виду
ping %CLIENTIP% и т.д.
как записать переменную окружения я уже разобрался см. выше (wscript при логине)
но ее увидеть далее немогу , не пойму почему .
системная и юзерская переменная не пойдет т.к. под одним юзером могут ходить с разных ip
30 октября 2006 г. 7:52 -
Egor_s написано: sie формулирую
есть прога которая запускает cmd-файлик в котором используется ip клиента который прописан явно
пример:
ping 10.10.10.12 далее анализируем результат . ...
необходимо привести к виду
ping %CLIENTIP% и т.д.
как записать переменную окружения я уже разобрался см. выше ( при логине)
но ее увидеть далее немогу , не пойму почему .
системная и юзерская переменная не пойдет т.к. под одним юзером могут ходить с разных ip
Делайте все через wscript, в том числе запуск вашей программы.
- Предложено в качестве ответа Nikita PanovModerator 7 мая 2009 г. 6:40
30 октября 2006 г. 11:41Модератор -
а по существу кто нить может помочь
но через перепенную окружения ???
31 октября 2006 г. 7:46