Windowsでは、ユーザーアカウント名は、コントロールパネルから変更された後のユーザープロファイル名とは異なります。
変更されたユーザーアカウント名から元のユーザープロファイル名を見つける方法は?
各アカウントには「名前」プロパティが2つあるので、混乱しないように少し説明します。 1つはSAM(セキュリティアカウントマネージャー)アカウント名で、Net User
の出力に表示されます。低レベルのOSコンポーネントに関する限り、これはアカウントの名前です。もう1つは表示名で、コントロールパネルの[ユーザーアカウント]ページと[スタート]メニューに表示されます。 MMC(lusrmgr.msc
)のローカルユーザーとグループスナップインでは、[名前]列にSAM名、[フルネーム]列に表示名の両方が表示されます。SAM名プロファイルフォルダの作成に使用されるものです。
これを使用しない限り、SAM名を変更するのは簡単ではありませんMMCスナップイン。SAM名を変更するだけで、イベント4781が生成されます。イベントが表示されないことを考えると、ログの4781で、表示名のみが変更されました。これにより、イベント4738(「ユーザーアカウントが変更されました」)のみが生成されます。イベント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
値は、プロファイルフォルダーへのパスを保持します。
Windowsセキュリティシステムのイベントログで を探します。EventID4781:アカウント名が変更されました :
4781:アカウントの名前が変更されました
件名:で識別されたユーザーが、ターゲットアカウント:で識別されたユーザーの通常のログオン名または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