以下是我开发的一些技巧。它们并不优雅,但可能在您的公司环境中起作用。
仅限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
带有混合本地/远程UNC路径的HOMEDRIVE / SHARE
如果您想通过名称访问某些UNC路径的“服务器”,但要用本地路径覆盖其他服务器,则我开发了以下可憎的方法。注意:与“服务器”的直接服务器连接仍将解析到本地计算机。仅当“服务器”仅是文件服务器时,才建议使用此解决方案:
修改C:\ Windows \ System32 \ drivers \ etc \ hosts以将“服务器”重定向到本地计算机:
127.0.0.1 Server
将以下多字符串注册表值添加到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共享(例如“用户”):
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