Trên Windows, tên tài khoản người dùng sẽ khác với tên hồ sơ người dùng sau khi được thay đổi từ Bảng điều khiển.
Làm cách nào để tìm tên hồ sơ người dùng gốc từ tên tài khoản người dùng đã thay đổi?
Trên Windows, tên tài khoản người dùng sẽ khác với tên hồ sơ người dùng sau khi được thay đổi từ Bảng điều khiển.
Làm cách nào để tìm tên hồ sơ người dùng gốc từ tên tài khoản người dùng đã thay đổi?
Câu trả lời:
Có hai thuộc tính "tên" của mỗi tài khoản, vì vậy hãy để tôi làm rõ mọi thứ một chút để chúng ta không bị nhầm lẫn. Một là tên tài khoản SAM (Trình quản lý tài khoản bảo mật), xuất hiện trong đầu ra của net user
. Đây là tên của tài khoản khi có liên quan đến các thành phần hệ điều hành cấp thấp. Tên còn lại là tên hiển thị, hiển thị trong trang Tài khoản người dùng của Bảng điều khiển và trong menu Bắt đầu. Phần đính kèm của Người dùng và Nhóm cục bộ cho MMC ( lusrmgr.msc
) hiển thị cả hai: tên SAM trong cột Tên và tên hiển thị trong cột Tên đầy đủ. Tên SAM là tên được sử dụng để sản xuất thư mục hồ sơ.
Không dễ để thay đổi tên SAM trừ khi bạn sử dụng phần đính vào MMC này. Chỉ thay đổi đối với sự kiện sản xuất tên SAM 4781. Tôi nghi ngờ, cho rằng bạn không thấy sự kiện 4781 trong nhật ký của mình, chỉ có tên hiển thị được thay đổi. Điều này chỉ tạo ra sự kiện 4738 ("tài khoản người dùng đã được thay đổi"). Sự kiện 4738 chỉ liệt kê giá trị mới cho tên hiển thị, không phải giá trị cũ và tôi nghi ngờ lịch sử của tên hiển thị không được lưu giữ ở bất kỳ đâu (hy vọng tốt nhất của bạn sẽ là tìm hiểu nhật ký cho nhiều trường hợp hơn 4738).
May mắn thay, tìm đường dẫn hồ sơ từ một tên hiển thị không quá khó. Mở PowerShell và gõ lệnh này:
gwmi win32_useraccount
Bạn nhận được một loạt các mục trông như thế này:
AccountType : 512
Caption : <redacted>\tester
Domain : <redacted>
SID : S-1-5-21-<redacted>-1018
FullName : Test Account
Name : tester
Tìm một cái có FullName
hiển thị tên hiển thị của tài khoản. Sau đó nhìn vào SID
giá trị (Tôi đã xử lý lại SID máy của mình ở đây). Mở Registry và điều hướng đến khóa được đề cập bởi harrymc:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
Mở khóa con có tên giống như SID bạn tìm thấy. Các ProfileImagePath
giá trị nắm giữ đường dẫn đến thư mục hồ sơ của họ.
Get-LocalUser
cmdlet không tồn tại trong phiên bản Windows 7 của PowerShell. (Tôi đã thử nghiệm trên Windows 10.) Tôi cũng đã chỉnh sửa câu trả lời của mình để hoạt động trên Windows 7.
Xem trong Nhật ký sự kiện hệ thống bảo mật của Windows cho EventID 4781: Tên của một tài khoản đã được thay đổi :
4781: Tên của một tài khoản đã được thay đổi
Người dùng được xác định bởi Chủ đề: đã thay đổi tên đăng nhập bình thường hoặc tên đăng nhập trước Win2k của người dùng được xác định bởi Tài khoản mục tiêu :. Sự kiện 4738 thực sự cung cấp thông tin tốt hơn về sự thay đổi này.
Sự kiện này được ghi lại cho cả tài khoản SAM và tài khoản miền.
Bạn cũng sẽ thấy ID sự kiện 4738 thông báo cho bạn thông tin tương tự.
Môn học:
Người dùng và phiên đăng nhập đã thực hiện hành động.
- ID bảo mật: SID của tài khoản.
- Tên tài khoản: Tên đăng nhập tài khoản.
- Tên miền tài khoản: Tên miền hoặc - trong trường hợp tài khoản cục bộ - tên máy tính.
- ID đăng nhập là số bán duy nhất (duy nhất giữa các lần khởi động lại) xác định phiên đăng nhập. ID đăng nhập cho phép bạn tương quan ngược với sự kiện đăng nhập (4624) cũng như với các sự kiện khác được ghi lại trong cùng một phiên đăng nhập.
Tài khoản mục tiêu:
- ID bảo mật: SID của tài khoản
- Tên tài khoản: tên tài khoản
- Tên miền tài khoản: tên miền của tài khoản
- Tên tài khoản cũ: tên đăng nhập cũ
- Tên tài khoản mới: tên đăng nhập mới
Câu trả lời này dựa trên thực tế là việc đổi tên tài khoản người dùng không tự động thay đổi đường dẫn hồ sơ.
Nếu tài khoản đã được đổi tên nhưng đường dẫn hồ sơ không được thay đổi, tên đường dẫn có thể được tìm thấy trong sổ đăng ký
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
trong mục có tên ProfileImagePath
giá trị sẽ là
C:\Users\old-user-name
.
Để chuyển đổi SID được đánh dấu thành tên tài khoản người dùng hiện tại, hãy nhập lệnh cmd:
wmic useraccount where sid='S-1-3-12-12451234567-1234567890-1234567-1434' get name
net user
liệt kê tên người dùng cũ? Được rồi, nếu có nhiều tên người dùng, vẫn khó để tìm ra, nhưng trên máy tính thì thường là không.
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....