Windowsで変更されたユーザーアカウント名から(元の)ユーザープロファイル名を識別する方法


回答:


6

各アカウントには「名前」プロパティが2つあるので、混乱しないように少し説明します。1つはSAM(Security Account Manager)アカウント名で、の出力に表示されますnet user。低レベルのOSコンポーネントに関する限り、これはアカウントの名前です。もう1つは表示名で、コントロールパネルの[ユーザーアカウント]ページと[スタート]メニューに表示されます。MMCのローカルユーザーとグループスナップイン(lusrmgr.msc)には、[名前]列にSAM名、[フルネーム]列に表示名の両方が表示されます。SAM名は、プロファイルフォルダーの作成に使用される名前です。

このMMCスナップインを使用しない限り、SAM名を変更するのは簡単ではありません。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値は、プロファイルフォルダーへのパスを保持します。


あなたが言ったようにコマンドを入力した後、私はこのエラーメッセージを受け取ります:Get-LocalUser : The term 'Get-LocalUser' is not recognized as the name of a cmdlet....
Fenixtriver

@FeniXtriverおっと、Get-LocalUserWindows 7バージョンのPowerShellにはコマンドレットが存在しないようです。(Windows 10でテストしました。)Windows 7でも動作するように回答を編集しました。
ベンN

実際にWindows 10でもテストしましたが、動作しないようです。とにかく、与えられた新しいコマンドは今動作します。貴重なご意見ありがとうございました。正解をマークしました。:)
Fenixtriver 2017年

8

変更されたユーザーアカウント名から元のユーザープロファイル名を見つける方法は?

WindowsセキュリティシステムのイベントログでイベントID 4781探します。アカウントの名前が変更されました

4781:アカウントの名前が変更されました

件名:で識別されたユーザーが、ターゲットアカウント:で識別されたユーザーの通常のログオン名またはWin2k以前のログオン名を変更しました。イベント4738は、実際にはこの変更に関するより良い情報を提供します。

このイベントは、ローカルのSAMアカウントとドメインアカウントの両方でログに記録されます。

また、同じ情報を通知するイベントID 4738も表示されます。

件名:

アクションを実行したユーザーとログオンセッション。

  • セキュリティID:アカウントのSID。
  • アカウント名:アカウントのログオン名。
  • アカウントドメイン:ドメイン、またはローカルアカウントの場合はコンピューター名。
  • ログオンIDは、ログオンセッションを識別する半一意(再起動間で一意)の番号です。ログオンIDを使用すると、同じログオンセッション中に記録された他のイベントと同様に、ログオンイベント(4624)に逆相関させることができます。

対象アカウント:

  • セキュリティID:アカウントのSID
  • アカウント名:アカウントの名前
  • アカウントドメイン:アカウントのドメイン
  • 古いアカウント名:古いログオン名
  • 新しいアカウント名:新しいログオン名

ソースイベントID 4781:アカウントの名前が変更されました


イベントログにこのイベントが見つかりませんでした。ユーザーアカウント名がユーザープロファイル名と異なるために、ユーザーアカウント名が変更される以外の可能性はありますか?それとも特定する他の方法はありますか?
Fenixtriver 2017年

@FeniXtriver セキュリティイベントログを確認しましたか?誰かがレジストリをハッキングしない限り、ユーザープロファイル名を変更する他の方法については知りません。
DavidPostill

1
ここでは、SAMアカウント名と表示名の違いについて混乱があると思います。テストを行い、コントロール名などで表示名を変更しても、SAM名は変更されないため、イベント4781は作成されません。
Ben N

@DavidPostillはい、セキュリティイベントログを調べました。ベンN'sは正しいと思います。そして私は彼の答えを正しいとマークしました。とにかくあなたの助けをありがとう。追加するものがまだある場合は、遠慮なくお知らせください。:)
Fenixtriver 2017年

8

この回答は、ユーザーアカウントの名前を変更してもプロファイルパスが自動的に変更されないという事実に基づいています。

アカウントの名前は変更されたが、プロファイルパスが変更されなかった場合、パス名は、レジストリの値がとなる HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList という名前の項目の下 にあります。ProfileImagePathC:\Users\old-user-name

画像 クリックすると大きな画像が表示されます

マークされたSIDを現在のユーザーアカウント名に変換するには、cmdに次のコマンドを入力します。

wmic useraccount where sid='S-1-3-12-12451234567-1234567890-1234567-1434' get name

1
さらに追加するには... net user古いユーザー名もリストされていませんか?わかりました、ユーザー名がたくさんある場合、それを理解することはまだ困難ですが、PCでは通常そうではありません。
LPChip 2017年

1
@harrymcでは、どのプロファイル名がどのアカウント名に対応しているのかをどのようにして知るのでしょうか。
Fenixtriver 2017年

1
1つの方法は、「S」で始まる長い文字列であるキーを取得し、cmdにコマンドを入力することwmic useraccount where sid='S-1-3-12-12451234567-1234567890-1234567-1434' get nameです。
ハリーマク2017年

@LPChip、あなたは正しいです。
Fenixtriver 2017年

@harrymc問題は、そもそもSIDが何であるかわからないことです。私は現時点でベンNの答えを正しいとマークしました。とにかくご意見ありがとうございます。追加するものがあれば、私に知らせてください。:)
Fenixtriver 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.