আমি প্রতিটি পক্ষের নীচে সংরক্ষণ করার চেষ্টা করছি:
"HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CurrentVersion\ProfileList\"
কিছু ডিরেক্টরিতে এবং আমি প্রতিটি লগনে আমার ব্যাকআপ এসআইডি-র উপস্থিতি থাকা বা প্রোফাইললিস্টের অধীনে নয় নিয়ন্ত্রণ করার চেষ্টা করছি। এটি যদি না হয় তবে আমার অবশ্যই রক্ষিত প্রোফাইলগুলি আমদানি করতে হবে।
আমি যা লিখেছিলাম তা ব্যাচ স্ক্রিপ্ট দিয়ে চেষ্টা করেছি, তবে আমার স্ক্রিপ্টটি এমনটি করছে যখন কোনও ব্যবহারকারী লগইন করে এবং এটি করার পক্ষে এটি ভাল উপায় নয়!
আমি কী করতে চাই তা বুঝতে আপনার জন্য এটি ভাগ করছি।
(স্ক্রিপ্ট 1 অবশ্যই প্রশাসকের অধিকার ছাড়াই ব্যবহারকারীর অ্যাকাউন্টের সাথে চলতে হবে))
@echo on
IF EXIST D:\Users\ (goto dvar) else goto quit
:dvar
echo dvar
setlocal enabledelayedexpansion
echo %username%>D:\Users\username.txt
for /f "tokens=2 delims= " %%i in ('whoami /user /fo table /nh') do set usersid=%%i
echo %usersid%>>D:\Users\username.txt
echo %userprofile%>>D:\Users\username.txt
IF EXIST D:\Users\%username% (goto GetUserinf) else goto quit
:GetUserinf
for /f "tokens=1 delims=." %%a in ('echo %userprofile%') do set newpath=%%a
IF %newpath%==%userprofile% (goto quit) else goto run
:run
Dprofile2.bat
:quit
exit
(স্ক্রিপ্ট 2 অবশ্যই অ্যাডমিন সুবিধার সাথে চলতে হবে))
@echo on
(
set /p user=
set /p usersid=
set /p oldpath=
)<C:\Windows\Temp\username.txt
for /f "tokens=1 delims=." %%a in ('echo %oldpath%') do set newpath=%%a
echo OLD path %oldpath% --- NEW path=%newpath%
IF EXIST %newpath% (goto oldexist) else goto quit
:oldexist
:choice
set /P c=For continue "Y", For quit "N" [Y/N]?
if /I "%c%" EQU "Y" goto :reboot
if /I "%c%" EQU "N" goto :quit
:reboot
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\%usersid%" /v "ProfileImagePath" /t REG_EXPAND_SZ /d "%newpath%" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /v "deleteprofile" /t REG_SZ /d "C:\Windows\system32\cmd.exe /q /c rmdir /s /q %oldpath%"
echo Windows Rebooting.
::shutdown -r -t 0
:quit
exit
আমি একটি শেল স্ক্রিপ্ট পেয়েছি তবে শেল ভিবিএস জানি না। আমি মনে করি শেল স্ক্রিপ্টিং সহ এটি সত্যিই সহজ কাজ।
অনুগ্রহ করে আপনি কি আমাকে সাহায্য করতে পারেন? আমি খুব শক্ত আটকেছি ...
$objUser = New-Object System.Security.Principal.NTAccount(Read-Host -Prompt "Enter Username")
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
#$strSID.Value
Rename-Item -Path "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\$($strSID.Value)" -NewName "$($strSID.Value).old"