レジストリキーのSIDからユーザアカウントを識別する方法


2013-0401-230422b

Windowsのレジストリキーについてのお話。
Windowsの設定値などをレジストリキーから調べる場合に、
キーによってはユーザアカウントごとに独立した設定となっている場合があり、
そのユーザアカウントの数だけキーが複数ある場合があります。

特定のユーザアカウントのレジストリキーを調べようとしたときに困ることなのですが、
レジストリ内ではユーザアカウントはSIDという個別のIDで表示され、
そのSID自体は数値の羅列のため、どのユーザアカウントなのか?
というのが一目でわからない仕様になってます。

要はそのSIDと実際のユーザアカウント名の紐づけがわかれば
どのユーザのレジストリキーなのかがわかるので、
その紐づきの情報を調べてみました。

スポンサードリンク

 

SIDの例

先ず実際のSIDですが、このような数列で記述されます。

例) S-1-5-21-3799544983-2651198241-1005135883-1001

上記の値がどのドメインのどのコンピュータのユーザアカウントなのか
というところまで示す個別のIDになるとのことで
このIDが一致することは基本的に無く、
また、ユーザアカウントを作り直しても一致するものではないようです。

SIDのアカウント情報のレジストリキー

さてSIDがどのユーザアカウントと紐づいているかどうかを見るには、
Usersのフォルダのどこを指定しているかを確認するとわかります。

具体的には、下記のレジストリキーを見てもらえばわかります。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\[sid]

上記レジストリ内のProfileImagePathの値を確認すると、
C:\Users\[ユーザ名]
という形で値が入力されています。

2013-0401-220518

この[ユーザ名]部分が実際のユーザアカウントと
紐づく部分となるわけですね。

また、Windows XP, Vista, 7と共通で同一の場所に
レジストリキーが格納されてることを確認しました。

XPだと、Document and Settingsのパスになります。
2013-0401-223532

実例

ユーザごとの設定は、
HKEY_USERS\[sid]
の中に格納されます。

例えばInternet Explorerのユーザアカウントごとの設定値は、

HKEY_USERS\[sid]\Software\Microsoft\Windows\CurrentVersion\Internet Settings

の中にそれぞれアカウントの数だけ格納される形になります。

総括

以前は、仕事上200台とか300台のPCを触ったりしたことがあったので、
この辺はもしかすると同じような管理者には参考になるかな、
と思って今回この話をしてみました。

1台のPCで複数ユーザのアカウントがあるようなものの場合、
ユーザごとの設定を追おうとすると結構大変なことが多いので
こうしたレジストリ値から設定を探してくることもよくやりました。

例えば特定の設定値がどこかのユーザアカウントに
設定されていることはわかるものの、
実際どのユーザアカウントに設定されているのかを調べる時など…
このSIDの紐づき方を覚えておけば、
苦労せずに設定が追えることがあるやもしれません。

スポンサードリンク

 

この記事が参考になったら、TipstourのFacebookページに『いいね!』をお願いします!

 

よろしければFeedlyもご登録ください!
follow us in feedly