2017-03-31 131 views
-2

我为我的域用户使用“D:\ users”profilePath。当我用新的Windows映像更改我的“系统驱动器”时,域用户创建新的配置文件,如“D:\ Users \ old.DNS”。如何从命令行更改注册表注册表?

我想使用旧的profilepath,但我找不到任何方法来告诉Windows“使用现有的配置文件”。因此,我需要从regedit更改配置文件路径!

我试图写一些东西,但我不知道如何修改注册表只改变“dnsname”。

由于每台机器的用户名都不同,而且不同公司的DNS名称也可能不同。

我以用户的SID与

set sid=wmic useraccount where name='%username%' get sid 

%sid% 

然后我需要的用户名,并从中取出.DNS,但我不知道我怎么能做到这一点。 。?。? 我可以在批量写入像成才“之后删除”,”‘点’

+0

有你看这个帖子的http:// stackoverflow.com/questions/130193/is-it-possible-to-modify-a-registry-entry-via-a-bat-cmd-script – Rob

+0

我最大的问题是取用户名并从中删除.DNS,例如用户名是username.DNS我想从它删除.DNS。比我更改ProfileImagePath的虚假 – Morphinz

+1

请阅读[在什么情况下,我可以添加“紧急”或其他类似的短语到我的问题,以获得更快的答案? (https://meta.stackoverflow.com/ q/326569) - 总结是,这不是解决志愿者问题的理想方式,而且可能适得其反。请不要将这添加到您的问题。 – halfer

回答

0

我发现我自己和这个脚本需要管理员权限

::get usersid first 
for /F "tokens=2" %%i in ('whoami /user /fo table /nh') do set usersid=%%i 

::get userpath 
for /F "tokens=3" %%i in ('reg QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\%usersid%" /v "ProfileImagePath"') do set oldpath=%%i 

::delete after "." 
for /f "tokens=1 delims=." %%a in ('echo %oldpath%') do set newpath=%%a 

::update the reg with new path 
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\%usersid%" /v "ProfileImagePath" /t REG_EXPAND_SZ /d "%newpath%" /f 

echo EVERYTHING OKAY MATE! 
pause