Windows 10でユーザーのセキュリティ識別子(SID)を確認する4つの方法
SID(Security Identifier:セキュリティ識別子)とは、Windowsオペレーティングシステム上でユーザー、グループ、コンピューターアカウントを識別するための一意のコードです。ユーザーアカウントを作成すると同時に自動的に生成され、一意の識別子であるため、同一のコンピューター上にまったく同じSIDが存在することはありません。「セキュリティID」と呼ばれることもあります。
この一意の識別情報は、「Personal」や「Dad」など私たちが設定した表示名の代わりに、OS内部で使用されます。つまり、表示名を変更しても、そのアカウントに事前設定された内容には何も影響しません。すべての設定はSIDに紐付いており、表示名やユーザー名を変更してもSID自体は変わらないためです。
SIDはシステムにとって非常に重要です。すべてのユーザーアカウントは、変更不可能な英数字の文字列に関連付けられています。ユーザー名を変更してもシステムリソースへのアクセス権は維持されます。一方、あるユーザー名を削除した後に、誰かがその古いユーザー名で新しいアカウントを作成しても、以前のリソースへのアクセス権を引き継ぐことはできません。SIDは常に各ユーザー名に対して一意に発行されるためです。
それでは、Windows 10でユーザーのセキュリティ識別子(SID)を確認する方法を見ていきましょう。
Windows 10でユーザーのSIDを確認する方法
1. WMICを使用する方法
ユーザーのSIDを調べるのは非常に簡単です。Windows Management Instrumentation Command Line(WMIC)を使用します。
まず、コマンドプロンプトを開きます。Cortana検索ボックスで「コマンドプロンプト」と検索するか、Windows 8以降をお使いの場合はWin + Xキーを押してスタートボタンのコンテキストメニューを開き、「コマンドプロンプト(管理者)」を選択してください。
次に、以下のコマンドを入力します。
wmic useraccount get name,sid
Enterキーを押すと、下のスクリーンショットのように、ユーザーアカウントとそれぞれに対応するSIDの一覧が表示されます。

特定のユーザーのSIDだけを絞り込む
SQLクエリに慣れている方ならイメージしやすいかもしれませんが、このコマンドを使うと特定のユーザーのSIDだけを抽出できます。複数のユーザーが同時にログインして利用する大規模なシステム(サーバーなど)では特に便利で、大幅な時間短縮になります。ただし、対象ユーザーのユーザー名を把握している必要があります。
使用するコマンドは以下の通りです。
wmic useraccount where name="USER" get sid
「USER」の部分を、実際のユーザー名に置き換えてください。
たとえば、次のようになります。
wmic useraccount where name="Ayush" get sid
このコマンドでエラーが発生する場合は、パスを C:\Windows\System32\ ではなく C:\Windows\System32\wbem に変更して試してみてください。
実行結果は次のような表示になります。

2. Whoamiコマンドを使用する方法
コマンドプロンプト/PowerShellで現在のユーザーのSIDを調べる
PowerShellまたはCMDウィンドウを開き、以下のコマンドを入力します。
whoami /user
Enterキーを押します。
現在のユーザーのSIDを調べるもう1つの方法として、wmic useraccountコマンドを使うこともできます。
PowerShellまたはCMDウィンドウを開き、以下のコマンドを実行します。
wmic useraccount where name='%username%' get domain,name,sid
Enterキーを押します。
コマンドプロンプト/PowerShellですべてのユーザーのSIDを調べる
コマンドプロンプトまたはPowerShellウィンドウを開き、以下のコマンドを入力します。
wmic useraccount get domain,name,sid
Enterキーを押します。
コマンドプロンプト/PowerShellで特定のユーザーのSIDを調べる
コマンドプロンプトまたはPowerShellを開き、以下のコマンドを入力します。
wmic useraccount where name='username' get sid
「username」の部分に、実際のユーザー名を入力してください。
Enterキーを押します。

コマンドプロンプト/PowerShellでSIDからユーザー名を逆引きする
コマンドプロンプトまたはPowerShellを開き、以下のコマンドを入力します。
wmic useraccount where sid='<sid>' get domain,name
「<sid>」の部分に、実際のSIDの値を入力してください。
Enterキーを押します。
3. PowerShellを使用する方法
すべてのユーザーのSIDを一括で取得したい場合は、PowerShellのGet-WmiObjectコマンドレットを使う方法もあります。
PowerShellを開き、以下のコマンドを入力します。
Get-WmiObject win32_useraccount | Select domain,name,sid
Enterキーを押します。
4. レジストリエディターを使用する方法
まず、レジストリエディターを開きます。Cortana検索ボックスで検索するか、Win + Rキーで「ファイル名を指定して実行」を起動し、「regedit」と入力してEnterキーを押してください。
レジストリエディターを開いたら、以下のパスへ移動します。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
ProfileListフォルダー内の各SIDキーにあるProfileImagePathの値を確認すると、目的のSIDや対応するユーザー名などの詳細情報がわかります。画面は下のスクリーンショットのようになります。

なお、この方法で確認できるのは、すでにそのコンピューターへログインしたことのあるユーザーのSIDのみです。リモートでアカウントにアクセスしているか、一度ログインした後に別のユーザーへ切り替えている状態である必要があります。これがこの方法の唯一の欠点ですが、WMICを使う方法1ではこの制限は一切ありません。
SIDの種類と意味
S-1-0-0という形式のSIDは「Null SID」と呼ばれます。値が不明な場合や、メンバーを1人も持たないグループに割り当てられるものです。
S-1-1-0という形式のSIDは「World SID」と呼ばれます。すべてのユーザーを含むグループに割り当てられます。
S-1-2-0という形式のSIDは「Local SID」と呼ばれます。ローカル端末からログインするユーザーに割り当てられるものです。
これらの識別子についてさらに詳しく知りたい方は、Microsoft Developer Network(MSDN)のドキュメントを参照してください。
-
Windowsのセキュリティ識別子(SID)とは?仕組みとSIDの解決方法を解説
セキュリティ識別子(Security Identifier:SID)とは、Windowsオペレーティングシステムにおいて、ユーザーやグループなどのセキュリティプリンシパル(セキュリティ主体)を一意に識別するために使用される、可変長の一意な値です。中でも「Well-known SID(既知のSID)」は、汎用的なユーザーやグループを識別するSIDのグループであり、その値はすべてのOSで共通となっています。 Windowsセキュリティ識別子(SID)の役割 Windowsでは、アクセス制御リスト(ACL)に基づいてリソースへのアクセスや権限の許可・拒否が行われます。このACLでは、SIDを使用して
-
Windows 10でユーザーのセキュリティ識別子(SID)を確認する6つの方法
ユーザープロファイルフォルダの名前を変更したり、現在のユーザーに関連するレジストリデータを変更したりする場合、そのユーザーアカウントのセキュリティ識別子(SID)を特定し、レジストリの HKEY_USERS 配下にあるどのキーが該当ユーザーに属しているのかを判別する必要があります。 セキュリティ識別子(SID)とは、 trustee(信頼されるアカウント)を一意に識別するために使用される、可変長の一意な値です。各アカウントには、Windowsドメインコントローラーなどの権限によって発行された固有のSIDが割り当てられ、セキュリティ保護されたデータベースに保存されます。ユーザーがログオンするたび