답변:
각 계정에는 두 개의 "이름"속성이 있으므로 혼동하지 않도록 약간 명확하게 설명하겠습니다. 하나는 SAM (Security Account Manager) 계정 이름으로,의 출력에 표시 net user
됩니다. 이것은 저수준 OS 구성 요소에 관한 한 계정 이름입니다. 다른 하나는 제어판의 사용자 계정 페이지와 시작 메뉴에 표시되는 표시 이름입니다. MMC 용 로컬 사용자 및 그룹 스냅인 ( lusrmgr.msc
)에는 이름 열에 SAM 이름과 전체 이름 열에 표시 이름이 모두 표시됩니다. SAM 이름은 프로필 폴더를 생성하는 데 사용됩니다.
이 MMC 스냅인을 사용하지 않으면 SAM 이름을 변경하는 것은 쉽지 않습니다. SAM 이름 만 변경하면 이벤트 4781이 생성됩니다. 로그에 이벤트 4781이 표시되지 않고 표시 이름 만 변경된 것으로 생각됩니다. 이벤트 4738 만 발생합니다 ( "사용자 계정이 변경되었습니다"). 이벤트 4738은 이전 값이 아닌 표시 이름의 새 값만 나열하며 표시 이름의 기록이 어디에도 보관되어 있지 않다고 생각합니다.
다행히 표시 이름에서 프로필 경로를 찾는 것은 그리 어렵지 않습니다. PowerShell을 열고 다음 명령을 입력하십시오.
gwmi win32_useraccount
다음과 같은 항목이 많이 있습니다.
AccountType : 512
Caption : <redacted>\tester
Domain : <redacted>
SID : S-1-5-21-<redacted>-1018
FullName : Test Account
Name : tester
FullName
계정의 표시 이름이 표시된 것을 찾으십시오 . 그런 다음 SID
값을 확인하십시오 (여기서 컴퓨터 SID를 수정했습니다). 레지스트리를 열고 harrymc가 언급 한 키로 이동하십시오.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
찾은 SID와 동일한 이름의 하위 키를 엽니 다. ProfileImagePath
값 프로필 폴더 경로를 유지한다.
Get-LocalUser
합니다. Windows 7 버전의 PowerShell 에는 cmdlet이없는 것 같습니다 . (Windows 10에서 테스트했습니다.) Windows 7에서도 작동하도록 답변을 편집했습니다.
Windows 보안 시스템 이벤트 로그에서 EventID 4781을 찾습니다 . 계정 이름이 변경되었습니다 .
4781 : 계정 이름이 변경되었습니다
Subject :로 식별 된 사용자가 대상 계정 :으로 식별 된 사용자의 일반 로그온 이름 또는 Win2k 이전 로그온 이름을 변경했습니다. 이벤트 4738은 실제로이 변경에 대한 더 나은 정보를 제공합니다.
이 이벤트는 로컬 SAM 계정과 도메인 계정 모두에 대해 기록됩니다.
또한 동일한 정보를 알려주는 이벤트 ID 4738이 표시됩니다.
제목:
작업을 수행 한 사용자 및 로그온 세션
- 보안 ID : 계정의 SID
- 계정 이름 : 계정 로그온 이름입니다.
- 계정 도메인 : 도메인 또는 로컬 계정의 경우 컴퓨터 이름.
- 로그온 ID는 로그온 세션을 식별하는 반 고유 (재부팅 간 고유) 번호입니다. 로그온 ID를 사용하면 동일한 로그온 세션 중에 기록 된 다른 이벤트뿐만 아니라 로그온 이벤트 (4624)와 거꾸로 상관 될 수 있습니다.
대상 계정 :
- 보안 ID : 계정의 SID
- 계정 이름 : 계정 이름
- 계정 도메인 : 계정의 도메인
- 기존 계정 이름 : 이전 로그온 이름
- 새 계정 이름 : 새 로그온 이름
이 답변은 사용자 계정 이름을 바꾸어도 프로필 경로가 자동으로 변경되지 않는다는 사실에 근거합니다.
계정 이름이 바뀌었지만 프로필 경로가 변경되지 않은 경우, 경로 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
이름 ProfileImagePath
은 값이로 지정된 항목 의 레지스트리에서 찾을 수
있습니다
C:\Users\old-user-name
.
표시된 SID를 현재 사용자 계정 이름으로 변환하려면 cmd에 다음 명령을 입력하십시오.
wmic useraccount where sid='S-1-3-12-12451234567-1234567890-1234567-1434' get name
net user
기존 사용자 이름도 나열 하지 않습니까? 좋아, 사용자 이름이 많으면 여전히 파악하기 어렵지만 PC에서는 일반적으로 그렇지 않습니다.
wmic useraccount where sid='S-1-3-12-12451234567-1234567890-1234567-1434' get name
입니다.
Get-LocalUser : The term 'Get-LocalUser' is not recognized as the name of a cmdlet....