다른 사용자, Windows 배치/powershell로부터 로컬 "HKEY_CURRENT_USER" 읽기

다른 사용자, Windows 배치/powershell로부터 로컬 "HKEY_CURRENT_USER" 읽기

알겠습니다. 까다로운 질문입니다. 네트워크의 모든 컴퓨터에서 유효성 검사 스크립트를 실행하는 소프트웨어가 있습니다. 나만의 스크립트를 만들 수도 있습니다. 그런데 스크립트가 관리자 권한을 가진 특정 사용자로 실행되는 문제를 발견했습니다. 따라서 내 스크립트가 레지스트리 경로를 확인할 때 Computer\HKEY_CURRENT_USER는 실제로 로그인된 사용자의 레지스트리가 아니라 스크립트를 실행하는 데 사용된 사용자입니다.

로그인한 다른 사용자 내에서(비밀번호 없이) reg.exe 명령을 실행할 수 있는 방법이 있습니까?

지금까지 노력하고 있었습니다:

:: Get the current console logged user 
for /F "tokens=1" %%f in ('query user ^| find "Active"') do set "ConsoleUser=%%f" 
:: clear the ">" character that sometimes is on the left of the user 
set ConsoleFinal=%ConsoleUser:*>=% 
:: enter the user folder (* at the end, if the user is part of a domain)  
cd c:\users\%ConsoleUser%*  
:: Import the other user registry reg load HKU\test ntuser.dat

그런데 ntuser.dat가 사용 중이라는 오류가 발생했습니다(다른 사용자가 로그인했기 때문입니다).

이력서에서: 현재 사용자의 레지스트리 키를 확인해야 하지만 다른 사용자에서 실행되는 스크립트에서 확인해야 합니다.

답변1

사용자가 로그인한 경우 해당 레지스트리는 이미 에 마운트되어 있습니다 HKEY_USERS/%SID%.

powershell에서는 HKEY_USERS에 대한 매핑을 설정한 다음 거기에서 레지스트리에 액세스할 수 있습니다. '시스템' 계정에 대한 Conhost 설정을 얻으려면 다음과 같이 할 수 있습니다.

PS > New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS
PS > Get-ItemProperty HKU:\S-1-5-18\Console\

관련 정보