|
发表于 2022-11-22 19:42:09
|
显示全部楼层
::生成admin目录到z盘符的批处理.BAT
@echo off
set windir
set ProgramData
set ProgramFiles
set ProgramFiles(x86)
set ProgramW6432
set PUBLIC
set SystemDrive
set SystemRoot
@echo —
set USERNAME
set USERPROFILE
set HOMEPATH
set HOMEDRIVE
set LOCALAPPDATA
set TEMP
set TMP
set PUB=%PUBLIC%
@echo —
@echo 复制→修改USERPROFILE注册表路径→注销→修改成功
@echo 复制USERPROFILE→使用wimlib热备份打包为[%SystemDrive%%PUB:~2,7%%userName%.wim]OR[Z:%PUB:~2,7%%userName%.wim]
@echo 修改USERPROFILE注册表路径→获取用户sid→读取HKEY_LOCAL_MACHINE\----\ProfileList\下的
@echo ProfileImagePath=用户路径
@echo 修改这个,注销即时生效=下次登陆生效
@echo —
::运行wmic的帐户可能需要管理员权限
::用批处理获取系统中当前账户的SID
for /f "delims=" %%a in ('wmic userAccount where "Name='%userName%'" get SID /value') do call set %%a >nul
rem @echo 去掉最后一个字符后的字符串为:%str:~0,-1%
set sid=%sid:~0,-1%
@echo {%sid%}
:: pause
@echo off
set "str=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\%sid%"
for /f "tokens=2*" %%a in ('reg query "%str%" /v ProfileImagePath 2^>nul') do set "a=%%b"
echo,%a%
:: pause
set stt=%USERPROFILE%
set Admin=%HOMEPATH%
set shh=%SystemDrive%
set admx=%stt:~0,1%
set admz=%shh:~0,1%
set "nResult="
if %admx%==%admz% (
set "nResult=Z:"
) else (
set "nResult=%SystemDrive%"
)
@echo %nResult%
rem echo 当前admin 盘符:%str:~0,2%
rem echo 当前os盘符所在:%SystemDrive%
@echo 当前%userName%{%str%}
@echo 准备注册表修改路径为{%nResult%%Admin%}
@echo 判断文件夹是否存在{%nResult%%Admin%}
@echo Reg.exe add "%str%" /v "ProfileImagePath" /t REG_EXPAND_SZ /d "%SystemDrive%%Admin%" /f>%userName%_X.bat
@echo Reg.exe add "%str%" /v "ProfileImagePath" /t REG_EXPAND_SZ /d "Z:%Admin%" /f>%userName%_Z.bat
@echo Reg.exe delete "%str%.bak" /f>>%userName%_X.bat
@echo Reg.exe delete "%str%.bak" /f>>%userName%_Z.bat
Exit
pause
@ping -n 20 127.1 >nul
::
rem echo HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\%sid%
rem for /f "tokens=1,2,* " %%i in ('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\%sid% /v ProfileImagePath ^| find /i "ProfileImagePath"') do set "regvalue=%%k"
rem echo 注册表值为%regvalue%
rem pause |
|