Como posso salvar User ProfileList e verificar se existe algum logon?

0

Estou tentando salvar todos os sids abaixo:

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

para algum diretório e estou tentando controlar todos os meus SIDs de backup existentes ou não no perfil. se não for, devo importar meus perfis salvos.

Eu tentei com script em lote que eu escrevi, mas meu script fazendo isso quando um login de usuário e não é uma boa maneira de fazer isso!

Estou compartilhando para você entender o que eu quero fazer.

(o script 1 deve ser executado com a conta de usuário sem privilégios de administrador.)

@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

(o script 2 deve ser executado com privilégios de administrador).

@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

Eu encontrei um Shell Script, mas eu não conheço o shell VBS. Eu acho que com scripts de shell isso é realmente um trabalho fácil.

Você pode me ajudar por favor? Eu fiquei tão duro ...

$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"
    
por Morphinz 03.08.2017 / 12:32

1 resposta

0

Você não precisa de todos eles.
Tudo que você precisa é fazer o seguinte;

1- Exportar Reg para algum diretório ".bat"
2- Reg importação de lá ".bat"
E cronograma para o seu lote 2. "Importar cada inicialização" e "Exportar todos os logon".
É isso, vivas.

    
por 07.08.2017 / 17:04