[Server] [Помощь] Задание переменных окружения

Тема в разделе "Windows", создана пользователем poison-b13, 18 ноя 2009.

Статус темы:
Закрыта.
Модераторы: ADMiNZ
  1. poison-b13

    poison-b13 Постоялец

    Регистр.:
    21 июл 2009
    Сообщения:
    64
    Симпатии:
    5
    ОСь: Win 2003 Enterprise SP2 Eng

    Добрый день.
    Ковырялся в нете нашел список переменных окружения, хочу сделать чтоб каждый юзер(если имеет админ права) ставил софт в свою папку,
    например с:\prog_files\{username}
    есть в системе переменная окружения PROGRAMFILES, если выполнить в командной строке echo %PROGRAMFILES% то покажет текущий путь.
    Пробую задавать через установку переменных окружения для пользователя(мой_комп->свойства->допольнительно->переменные среды-> верхнее поле)
    софт не принимает, когда запускаю установку чего либо, а когда задаю через реестр(HKLM\Software\Microsoft\Windows\CurrentVersion\)
    параметр ProgramFilesDir = c:\prog_files\%USERNAME% не понимает значение %USERNAME% софт ставится в папку %USERNAME%

    Буду признателен за любую помощь.
     
  2. Шейла

    Шейла

    Регистр.:
    12 май 2008
    Сообщения:
    565
    Симпатии:
    158
    Попробуй такую конструкцию.
    ЗЫ
    И внимательно перечитай свой пост,ну нифигаж не понятно.
    Ты излагай так, что люди которые будут это читать, вообще невкурсе твоих мыслей и действий.
     
  3. poison-b13

    poison-b13 Постоялец

    Регистр.:
    21 июл 2009
    Сообщения:
    64
    Симпатии:
    5
    не проходит, по той причине что переменная %PROGRAMFILES% уже сама по себе содержит имя диска, непонятно почему из реестра система не понимает %USERNAME% , по логике с таким параметром она должна брать имя текущего юзера, и ставить софт в соответствующую папку, но она этого не делает.
     
  4. Шейла

    Шейла

    Регистр.:
    12 май 2008
    Сообщения:
    565
    Симпатии:
    158
    Из варианта что выше.
    Попробую юзеру папку создать руками.
    При определении переменной добавь в конце \
    Чисто теоритически могу предположить.

    Может переопределить саму переменную %PROGRAMFILES% из "C:\Program Files" => "C:\Program Files\%USERNAME%"

    PS
    Хотя я даже понятия не имею как это будет выглядеть, применять на свой страх и риск.
     
  5. poison-b13

    poison-b13 Постоялец

    Регистр.:
    21 июл 2009
    Сообщения:
    64
    Симпатии:
    5
    по правде говоря пункт реестра
    Код:
    HKLM\Software\Microsoft\Windows\CurrentVersion\
    ProgramFilesDir = c:\Program Files
    так он выглядит в оригинале
    и отвечает за определение пути к папке c:\Program Files, переопределение собсно говоря возможно, на сайте мелкософта, описано именно изменение этого пункта реестра, и все работает, т.к. система сама потом докладывает нехватающие файлы в новую папку.
    в вот тема со слешем в конце не катит, ибо я так тоже пробовал, хотелось именно понять почему система не понимает переменную %USERNAME% если ее задавать из реестра.
     
  6. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    cmd.exe:
    в чем проблема то ?
    хз как с реестром а в консоли все ок
    ну максимум скрипт в автозагрузку прописать
     
  7. poison-b13

    poison-b13 Постоялец

    Регистр.:
    21 июл 2009
    Сообщения:
    64
    Симпатии:
    5
    все то это хорошо.

    ZCFD вы софт то, сам ставить пробовали? при таком раскладе, он все равно почему то ломится в C:\Program Files
     
  8. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    2 poison-b13 : какой именно софт

    банально ты слишком хорошо думаешь о тех кто пишет инсталлеры
    Далеко не все ориентируются на переменные окрыжения, зачастую только на диск, т.к. редко меняется значение этой переменной

    предлагаю сменить значение HOMEDRIVE и посмотреть еще раз, куда софт будет ставиться
     
    poison-b13 нравится это.
  9. poison-b13

    poison-b13 Постоялец

    Регистр.:
    21 июл 2009
    Сообщения:
    64
    Симпатии:
    5
    ну на реестр то ориентируются! ставится же софт в папку оторую в реестре прописываю, тока переменная %USERNAME% не отрабатывается,
    а вот софт ну любой, предположим тот же winrar или 7zip.
     
  10. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    Ок
    если тебе нужно редактировать реестр , то предлагаю не заморачиваться
    а прописать в автозагрузку скрипт

    EditPrFDir.cmd
    Код:
     
    reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion /v ProgramFilesDir /t REG_SZ /d "C:\Program Files\%USERNAME%" /f
    
    проверил у себя - работает

    ну разве что спрятать если нужно от юзверей

    по ключам - добавляем ключ с заданным именем и значением
    /f - перезаписывает существующие данный

    в общем читай в консоли
    reg /?
     
    poison-b13 нравится это.
Статус темы:
Закрыта.