Active Directory Users and Computers を使用して SID を検索するには、PowerShell を使用します。セキュリティ識別子または SID は、ドメイン制御ネットワーク上の各 Windows ユーザー、グループ、またはコンピューターに割り当てられた一意の ID 番号です。たとえば、ファイルおよびフォルダーのアクセス許可を管理したり、レジストリを閲覧したりしたことがある場合、S-1-5-21-3011698416-3634052959-2884390752-500 のような長い文字列値を見たことがあるかもしれません。これまでにこのようなものを見たことがある場合、既に SID に遭遇しています。
すべてのユーザー、グループ、またはコンピューターには一意の SID があります。SIDs を聞いたことがない場合、その目的や Active Directory (AD) 内での役割について疑問に思うかもしれません。結局のところ、これらのセキュリティ識別子は通常、見えない場所にあります。
この記事では、SID とは何か、Active Directory ユーザーおよびコンピューターで SID を検索する方法、および Windows PowerShell を使用して SID を取得する複数のコマンドを共有します。
Active Directory で SID を検索

SID レポートの前提条件
この記事でカバーされているさまざまな Active Directory コマンドおよびその例を使用するには、次の項目を満たしていることを確認してください。
- AD ドメインに参加している Windows PC 上で
- 最低限の読み取り権限を持つ AD ユーザーアカウントでログインしていること
- PowerShell Active Directory モジュールがインストールされ、インポートされていること
無料で Active Directory SID レポートソリューションをお試しください
私たちを試してみてください、無料で、すべての機能にアクセスできます。- 200以上のADレポートテンプレートが利用可能です。簡単に独自のAD SIDレポートをカスタマイズできます。
セキュリティ識別子の紹介
A Security Identifier or SID is a unique string of values assigned to each security principal and security group by an authority, such as a Windows domain controller. When a security group or principal is created, security identification is made automatically. Once created, the SID is saved in the security database and can be accessed as needed.
SIDとユーザー権利を組み合わせて、Windowsはユーザーがシステムにログインするたびにアクセス トークンを提供します。このアクセス トークンはセキュリティコンテキストを提供し、Windowsシステムを管理するために適切なアクセス許可と権限を与えます。したがって、SIDはWindowsセキュリティモデルの必須部分の1つです。
自動生成されたSIDのほかに、Windowsにはいくつかのよく知られたユニバーサルSIDがあります。例えば、Everyone、Local Authority、World、NT Authorityy、およびAll Servicesなどです。次の表には、よく知られたユニバーサルSIDがリストされています。
Value | Universal Well-Known SID | Identifies |
---|---|---|
S-1-0-0 | Null SID | A group with no member objects. This SID is often used when a SID value is null or unknown. |
S-1-1-0 | World | A group that includes everyone or all users. |
S-1-2-0 | Local | Users who log on to local (physically connected) |
S-1-2-1 | Console Logon | A group includes users logged on the physical console. |
S-1-3-0 | Creator Owner ID | A SID to be replaced by the user’s security identifier who created a new object. This SID is used in inheritable ACEs. |
S-1-3-1 | Creator Group ID | A SID is replaced by the primary-group SID of the user who created a new object. Use this SID in inheritable ACEs. |
S-1-3-2 | Creator Owner Server | |
S-1-3-3 | Creator Group Server | |
S-1-3-4 | Owner Rights | A SID that represents the current owner of the object. When an ACE that carries this SID is applied to an object, the system ignores the object owner’s implicit READ_CONTROL and WRITE_DAC permissions for the object owner. |
S-1-4 | Non-unique Authority | A Security Identifier that represents an identifier authority. |
S-1-5 | NT Authority | A Security Identifier that represents an identifier authority. |
S-1-5-80-0 | All Services | A group includes all service processes configured on the system. The operating system controls membership. |
セキュリティ識別子について詳しく学びたい場合は、このリンクをクリックして公式Microsoftドキュメントを参照してください。
PowerShellを使用してActive Directoryオブジェクト内のSIDを見つける
PowerShellを使用すると、各オブジェクトの異なるSIDをすべてのレベルで見つけることができます。SIDは、ユーザー、グループ、またはコンピュータオブジェクトのプロパティとして配置されています。PowerShellオブジェクトからSIDプロパティを抽出するためにSelect-Objectコマンドを使用します。
次のセクションでは、現在のログインしているユーザーのSIDを取得し、フォレスト内のすべてのドメインのトップに進む方法を説明します。
PowerShellで現在のActive DirectoryユーザーSIDを取得する
PowerShellで現在のユーザーSIDを取得するには、Get-LocalUserコマンドレットを使用します。これにより、ユーザーアカウントの詳細が取得されます。たとえば、以下のコマンドを実行して現在ログインしているユーザーのSIDを取得します。
Get-LocalUser -Name $env:USERNAME | Select-Object sid
上記のPowerShellスクリプトでは、Get-LocalUserが環境変数$env:USERNAMEで指定されたユーザーアカウントの詳細を取得します。

$env:USERNAMEは環境変数であり、オペレーティングシステムの環境やプログラムに関する情報を保存します。このデータには、オペレーティングシステムのパス、Windowsインストールディレクトリの場所、およびオペレーティングシステムが使用するプロセスの数が含まれます。PowerShellは環境変数にアクセスして管理し、変更することができます。
PowerShellでローカルユーザーSIDを取得します
サーバーには、ローカルユーザーアカウントが保存されています。これらのアカウントには、1つのシステムでのみ、その1台のマシンでアクセスと権限を与えることができます。ローカルユーザーアカウントは、ソロまたはメンバーサーバーのリソースへのサービスまたはユーザーアクセスを保護および制御するために使用されるセキュリティ原則です。
Get-LocalUserは、PowerShellを介してローカルユーザーのSIDを返します。次に示すように、Get-LocalUserコマンドを使用する際には、まだADモジュールをロードしてインポートする必要はありません。
Get-LocalUser -Name 'johndoe' | Select-Object sid
PowerShellスクリプトでは、ローカルユーザー名を指定してローカルユーザーSIDを取得します。
PowerShellでActive DirectoryユーザーSIDを取得する
Active Directoryコマンドを実行するため、インポートされたADモジュールをインポートする必要があります。
Import-Module ActiveDirectory
Get-ADUserコマンドレットを使用して、1つまたは複数のADユーザーアカウントの詳細を取得できます。以下のコマンドを実行します。
Get-AdUser -Identity toms | Select Name, SID, UserPrincipalName
上記のPowerShellスクリプトでは、Get-ADUserコマンドレットがIdentityパラメーターで指定されたADユーザーSIDを取得します。さらに、パラメーターはPowerShellで名前、ADユーザーのSID、およびユーザー主体名のプロパティを選択します。
当社のActive Directory & Office 365レポートと監査ツールをお試しください。
試してみませんか 無料で。何百ものレポートテンプレートが利用可能です。AD、Azure AD、Office 365の独自のレポートを簡単にカスタマイズできます。
PowerShellでActive DirectoryコンピューターのSIDを取得する
ユーザーのSIDだけでなく、ドメイン参加コンピューターのSIDも取得できます。Get-ADComputerコマンドを使用してActive DirectoryコンピューターのSIDを取得できます。フィルターパラメーターを使用して複数のADコンピューターから複数のSIDを取得できます。
Get-ADComputer -Filter * | Select-Object Name, SID
上記のPowerShellでは、Get-ADComputerコマンドレットがActive Directoryでコンピューターアカウントの詳細を取得し、パイプ演算子を使用してActive Directory内のコンピューターの名前とSIDを選択します。
PowerShellでActive DirectoryグループのSIDを取得する
ユーザーやコンピュータと同様に、グループもADオブジェクトとみなされるため、グループのSIDを取得することもできます。アクティブディレクトリ内のADグループのSIDを取得するには、Get-ADGroupコマンドレットを使用します。
Get-ADGroup -Identity SalesLeader | Select-Object Name, SID
Get-ADGroupコマンドレットは、PowerShellスクリプト内のIdentityパラメータで指定されたグループアカウントを取得します。次に、パイプ演算子を使用して、アクティブディレクトリ内のADグループのNameプロパティとSIDプロパティを選択します。
PowerShellですべてのドメインのSIDを取得する
アクティブディレクトリフォレスト(ADフォレスト)は、アクティブディレクトリ構成内のドメイン、ユーザー、マシン、およびグループルールを収める論理コンテナです。
アクティブディレクトリ内のすべてのドメインのSIDを取得するには、以下のようにアクティブディレクトリのGet-ADForestコマンドレットを使用します。
(Get-ADForest).Domains| %{Get-ADDomain -Server $_} | Select-Object name, domainsid
アクティブディレクトリオブジェクト内のSIDを検索する結論
Active Directory の Get-ADUser、Get-ADComputer、Get-ADGroup などのコマンドレットを使用して、アクティブディレクトリのユーザーおよびコンピューターの SID を検索できます。さらに、Get-LocalUser および Get-ADDomain を使用して、ローカルユーザーおよびドメイン全体の SID を取得することもできます。
Source:
https://infrasos.com/find-sid-in-active-directory-users-and-computers-using-powershell/