Я пытаюсь сохранить каждый sid под:

"HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CurrentVersion\ProfileList\"

в какой-то каталог, и я пытаюсь контролировать каждый вход в систему, мой резервный SID существует или отсутствует в списке профилей. если это не так, я должен импортировать свои сохраненные профили.

Я пытался с пакетным сценарием, который я написал, но мой сценарий делает это, когда пользователь входит в систему, и это не очень хороший способ сделать это!

Я делюсь этим, чтобы вы поняли, что я хочу сделать.

(сценарий 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

Я нашел сценарий оболочки, но я не знаю оболочки VBS. Я думаю, что с помощью сценариев оболочки это действительно легкая работа.

Не могли бы вы мне помочь? Я застрял так сильно ...

$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"

1 ответ1

0

Вам не нужны все из них.
Все, что вам нужно, это сделать следующее;

1- Reg экспорт в какой-то каталог ".bat"
2- Рег импорт оттуда ".bat"
И график для вашей 2 партии. "Импортировать каждый запуск" и "Экспортировать каждый вход в систему".
Вот и все, ура.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .