我找到了一种更改用户默认主目录的方法,但是我遇到了问题。
这将把主目录更改为C:
但是当我检查环境变量时:
它仍然是H:,使用系统重启后,Windows设置中的环境变量也将返回到H:/
我还尝试了以下更改:
它似乎有效,但是如果我打开一个新的cmd,则会恢复到H:/
现在我正在尝试这样做,以便OpenSSH能够将C识别为我的主目录,而不是网络驱动器H:,强制OpenSSH除非我通过VPN连接到了大学网络,否则无法工作。
我应该怎么做才能永久地设置并让OpenSSH知道这个更改?
我找到了一种更改用户默认主目录的方法,但是我遇到了问题。
这将把主目录更改为C:
但是当我检查环境变量时:
它仍然是H:,使用系统重启后,Windows设置中的环境变量也将返回到H:/
我还尝试了以下更改:
它似乎有效,但是如果我打开一个新的cmd,则会恢复到H:/
现在我正在尝试这样做,以便OpenSSH能够将C识别为我的主目录,而不是网络驱动器H:,强制OpenSSH除非我通过VPN连接到了大学网络,否则无法工作。
我应该怎么做才能永久地设置并让OpenSSH知道这个更改?
在任何地方都没有提到HOMEDRIVE值和HOMEDIRECTORY值之间的依赖关系,我认为发生的事情是它无法将主目录映射到HOMEDRIVE,因此默认返回安全值(C:)。
我编写了一个脚本来更新本地AD,在[]中替换值以符合您的值。复制并粘贴到.vbs文件中,双击运行即可。
Set objUser = GetObject("WinNT://[COMPUTERNAME]/[USERNAME],user")
objUser.homeDirDrive = "H:"
objUser.HomeDirectory = "[URNPATH]"
objUser.SetInfo
例如
Set objUser = GetObject("WinNT://UQBDART-2328/BEN,user")
objUser.homeDirDrive = "H:"
objUser.HomeDirectory = "\\SERVER\SHARE"
objUser.SetInfo
运行这个命令,重新启动并测试。它对我有用。
http://support.microsoft.com/kb/841343
http://support.microsoft.com/kb/237566
http://support.microsoft.com/kb/101507
关于解决问题的另一种方法:
- 我曾经创建了一个新的Windows命令行shell可执行文件实例,它自动运行自定义脚本,因此每次启动shell时,环境变量都可能被覆盖。
- 您可以将您发布的代码放入批处理脚本中,存储在任何您喜欢的位置。然后,通过修改属性 > 目标框来编辑用于启动shell的快捷方式:%SystemRoot%\system32\cmd.exe /K "C:\Documents and Settings\Administrator\My Documents\customshellscript.cmd" (显然,在/K之后的路径部分是您自定义脚本的位置)
这样,如果您无论如何都在控制台上使用openSSH,就会始终正确设置主目录驱动器。
set homedrive=h:\
然后通过输入进行测试以检查其是否已更新
set h
从同一个窗口输入
start cmd
在这个新窗口中输入
set h
我曾经遇到过类似的问题,HOMEDRIVE变量被设置为U:,而这是一个我们不再使用的驱动器。这只是针对一个特定的用户。我进入AD中该用户的个人资料,并点击属性编辑器选项卡。那里有一个名为HOMEDRIVE的属性,我将其从U:更改为C: - 当用户再次登录时,它被正确地设置了。我还在此处更新了HomeDirectory属性。
这个问题一直让我很沮丧,试图找到解决方案,但我已经找到了我认为是最终答案,并在以下位置发布:
https://dev59.com/4Kzla4cB1Zd3GeqPBsBy#60235759
您需要运行'net user USERNAME /homedir:PATH'命令,其中USERNAME是您要更改的用户的名称,PATH是所需主文件夹的驱动器号和完整路径,该文件夹必须已经存在。
在Windows 8上:
在新路径后面添加要分号分隔的新路径变量。
例如:C:\Program Files\;C:\Python27\