Ниже приведены некоторые хаки, которые я разработал. Они не элегантны, но могут функционировать в вашей корпоративной среде.
Только HOMEDRIVE
Кажется, что многие приложения используют только HOMEDRIVE / HOMEPATH. В этом случае вы можете создать сценарий запуска, который сопоставляет букву базового диска с вашим локальным путем через путь администратора диска UNC:
set HOME
HOMEDRIVE=G:
HOMEPATH=\
HOMESHARE=\\Server\Users\username
net use g: /delete
net use g: \\localhost\C$\Users\username
HOMEDRIVE Локальный по умолчанию
Если вам вообще не нужен доступ к "Серверу" по имени, вы можете вызвать сбой настройки групповой политики и откат к локальной машине. Самый простой способ сделать это - добавить запись в C:\Windows\System32\drivers\etc\hosts, например:
127.0.0.1 Server
После перезагрузки вы должны увидеть что-то вроде:
set HOME
HOMEDRIVE=C:
HOMEPATH=\Users\username
HOMEDRIVE/SHARE с гибридными локальными / удаленными UNC-путями
Если вы хотите получить доступ к "Серверу" по имени для некоторых путей UNC, но переопределить другие локальными путями, я разработал следующую мерзость. Примечание: прямые подключения к серверу по-прежнему будут разрешаться на вашем локальном компьютере. Я рекомендую это решение, только если "Сервер" является только файловым сервером:
Измените C:\Windows\System32\drivers\etc\hosts, чтобы перенаправить "Сервер" на ваш локальный компьютер:
127.0.0.1 Server
Добавьте следующее значение реестра Multi-String в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0, чтобы разрешить передачу учетных данных по локальному UNC-пути:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\
BackConnectionHostNames = Server
Создайте фиктивный каталог, который будет служить корнем сервера:
set DUMMY_LOC=C:\Server_Dummy
mkdir %DUMMY_LOC%
cd /D %DUMMY_LOC%
Для каждого UNC-пути, который вы хотите направить на реальный Сервер:
rem Alternatively you can use an IP below, but it is more likely to break if DNS changes
set SERVER_FQDN=Server.network.blah.com
rem Take a look at what's available...
net view \\%SERVER_FQDN%\
mklink /D Remote_Example \\%SERVER_FQDN%\Remote_Example
net share Remote_Example=%DUMMY_LOC%\Remote_Example /grant:everyone,FULL
Для каждого общего ресурса UNC, который вы хотите определить локально (например, Users):
rem The link isn't really necessary for the share, I just find it easier to manage when all of these hacks are in the same directory
mklink /D Users C:\Users
net share Users=%DUMMY_LOC%\Users /grant:everyone,FULL
перезагружать
Например, это позволило бы разрешить следующие пути UNC:
\\Server\Remote_Example => \\Server.network.blah.com\Remote_Example
\\Server\Users => C:\Users
Это разрешение пути должно происходить до сопоставления дисков. Пока пути UNC, связанные с сопоставлениями, действительны (локальные или удаленные), буквы дисков должны вести себя как положено.
Например, в моей настройке следующие переменные принудительно задаются доменом:
set HOME
HOMEDRIVE=G:
HOMEPATH=\
HOMESHARE=\\Server\Users\username
Но из-за моих отображений результат:
G: => \\Server\Users\username => C:\Users\username