Динамический домашний каталог пользователя в Windows (изменение %HOMEDRIVE% и %HOMEPATH%)

Актуальный вопрос

Как я могу "перенаправить" (символические ссылки?) или временно изменить значения %HOMEDRIVE% и %HOMEPATH% (может быть, на основе двух пакетных скриптов, которые меняют значения, когда я начинаю работать на машине, и сбрасывают все после того, как я закончу)?

Задний план

Многие программы Windows используют либо системную переменную %USERPROFILE%, либо комбинацию %HOMEDRIVE% и %HOMEPATH, чтобы выяснить, где находится «домашний» каталог пользователя, который им нужно использовать (например, C:\Users\JohnDoe). Будучи поклонником философии портативных приложений (см. внизу, что я имею в виду под этим), мне интересно, могу ли я каким-то образом сделать свой домашний каталог переносимым, т.е. чтобы он указывал на каталог на портативное устройство. Или, другими словами, я хотел бы сделать его «динамически изменяемым».

Что я пробовал

Я немного прочитал о Set и Setx и попробовал следующее:

Выяснение текущих значений переменных:

C:\Users\JohnDoe> Set HOME
HOMEDRIVE=C:
HOMEPATH=\Users\<username>

Установите их:

C:\Users\JohnDoe> Setx HOMEDRIVE "d:"
C:\Users\JohnDoe> Setx HOMEPATH "\home"

Это создает HOMEDIR и HOMEPATH как пользовательские переменные среды (см. Панель управления >> Система >> Переменные среды). Но «глобальные» не изменились и, например. RStudio не распознает пользовательские переменные (по-прежнему записывает в C:\Users\JohnDoes\[...]).

C:\Users\JohnDoe> Set HOME
HOMEDRIVE=C:
HOMEPATH=\Users\<username>

Портативные приложения

Например, см. PortableApps.com или просто подумайте «программное обеспечение, которое просто было установлено на портативное устройство вместо C:\Program Files\<app-name>». Последнее мне очень нравится для программ, которые не заботятся о %HOMEDRIVE% и %HOMEPATH% (например, Eclipse или R).

Некоторые другие (например, Git) просто нужно немного подправить (например, см. этот пост).

Тем не менее, некоторые другие (например, RStudio) на самом деле без проблем запускаются с переносного устройства, но записывают информацию на "домашний компьютер" пользователя. "каталог. Это то программное обеспечение, которому я хотел бы предложить вместо этого использовать каталог на моем портативном устройстве.


person Rappster    schedule 26.07.2014    source источник
comment
Вы можете просто использовать set, чтобы изменить переменные среды для текущей командной оболочки и запустить приложение из этой оболочки. Но, конечно, это работает только в том случае, если приложение действительно просматривает переменные среды (что не должно, но некоторые делают).   -  person Harry Johnston    schedule 27.07.2014
comment
Хорошо спасибо! По крайней мере, это может быть вариантом.   -  person Rappster    schedule 27.07.2014


Ответы (1)


Хотя вы можете изменить переменные среды, это не будет работать для всех приложений, так как в Windows также есть API-интерфейс папки Shell, который дает различные пользовательские местоположения.

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

Я думаю, что при настройке Windows (и с помощью sysprep) можно указать местоположение папки }users} (другой диск). Быстрее всего перемещаются специальные папки библиотеки, вы можете изменить их расположение в представлении свойств Проводника.

person eckes    schedule 26.07.2014
comment
Хорошо, спасибо, что разъяснили это! Однако вы упомянули некоторые вещи, с которыми я еще не знаком: как мне изменить профиль и какие специальные папки библиотеки вы имеете в виду? - person Rappster; 27.07.2014