PowerShell을 사용하여 Active Directory 사용자 및 컴퓨터에서 SID 찾기

활성 디렉터리 사용자 및 컴퓨터에서 PowerShell을 사용하여 SID 찾기. 보안 식별자 또는 SID는 도메인 제어 네트워크의 각 Windows 사용자, 그룹 또는 컴퓨터에 할당된 고유한 ID 번호입니다. 예를 들어, 파일 및 폴더 권한을 관리하거나 레지스트리를 찾아 본 적이 있다면 긴 문자열 값인 S-1-5-21-3011698416-3634052959-2884390752-500과 같은 것을 보았을 것입니다. 이와 같은 것을 본 적이 있다면 이미 SID를 만난 적이 있습니다.

모든 사용자, 그룹 또는 컴퓨터에는 고유한 SID가 있습니다. SID에 대해 들어본 적이 없다면 그 목적이 무엇이며 활성 디렉터리(AD) 안에서 어떻게 작동하는지 궁금할 수 있습니다. 결국, 우리는 일반적으로 이러한 보안 식별자를 명확하게 볼 수는 없을 것입니다.

이 기사에서는 SID가 무엇인지, 활성 디렉터리 사용자 및 컴퓨터에서 SID를 찾는 방법 및 Windows PowerShell을 사용하여 SID를 가져오는 여러 명령을 설명하겠습니다.

활성 디렉터리에서 SID 찾기

SID 보고서 전제 조건

이 기사에서 다루는 다양한 활성 디렉터리 명령과 예제를 사용하려면 다음 사항을 준비해야 합니다:

  • AD 도메인에 가입된 Windows PC에서
  • 최소한 활성 디렉터리에 대한 읽기 권한이 있는 AD 사용자 계정으로 로그인
  • PowerShell 활성 디렉터리 모듈이 설치되고 가져와야 함

무료로 활성 디렉터리 SID 보고 솔루션을 시도해보세요

우리를 시험해보세요, 모든 기능에 무료로 액세스하세요. – 200개 이상의 광고 보고서 템플릿이 제공됩니다. 쉽게 자신만의 광고 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 보안 모델의 필수 부분 중 하나입니다.

자동으로 생성된 SID 외에도, Windows에는 Everyone, Local Authority, World, NT Authority, All Services와 같은 몇 가지 잘 알려진 범용 SID가 있습니다. 다음 표에는 잘 알려진 범용 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 가져오기

우리는 현재 사용자 SID를 PowerShell에서 가져올 수 있습니다. 이를 위해 Get-LocalUser cmdlet을 사용하며, 이는 사용자 계정 세부 정보를 가져옵니다. 예를 들어, 아래 명령을 실행하여 현재 로그인된 사용자 SID를 가져올 수 있습니다.

Get-LocalUser -Name $env:USERNAME | Select-Object  sid

위의 PowerShell 스크립트에서 Get-LocalUser는 환경 변수 $env:USERNAME으로 지정된 사용자 계정 세부 정보를 가져옵니다.

$env:USERNAME환경 변수로, 운영 체제의 환경 및 프로그램에 대한 정보를 저장합니다. 이 데이터에는 운영 체제 경로, Windows 설치 디렉토리의 위치, 운영 체제에서 사용하는 프로세스 수가 모두 포함됩니다. PowerShell은 환경 변수에 액세스하여 관리하고 변경할 수 있습니다.

PowerShell에서 로컬 사용자 SID 가져오기

서버에서 로컬 사용자 계정이 저장됩니다. 이러한 계정에 단일 시스템에서 액세스 권한과 권한을 부여할 수 있지만, 해당 하드웨어에서만 가능합니다. 로컬 사용자 계정은 단독 또는 멤버 서버에서 리소스에 대한 서비스 또는 사용자 액세스를 보호하고 제어하는 데 사용되는 보안 원칙입니다.

Get-LocalUser는 아래에 표시된 대로 PowerShell을 통해 로컬 사용자의 SID를 반환합니다. Get-LocalUser 명령을 사용할 때 AD 모듈을 로드하고 가져올 필요가 없습니다.

Get-LocalUser -Name 'johndoe' | Select-Object  sid

PowerShell 스크립트는 로컬 사용자 SID를 가져오기 위해 로컬 사용자 이름을 지정합니다.

PowerShell에서 활성 디렉터리 사용자 SID 가져오기

활성 디렉터리 명령을 실행할 것이기 때문에 AD 모듈을 가져와야 합니다.

Import-Module ActiveDirectory

Get-ADUser cmdlet을 사용하여 하나 이상의 AD 사용자 계정 세부 정보를 가져올 수 있습니다. 아래 명령을 실행하세요.

Get-AdUser -Identity toms | Select Name, SID, UserPrincipalName

위의 PowerShell 스크립트에서 Get-ADUser cmdlet은 식별자 매개 변수로 지정된 AD 사용자 SID를 가져옵니다. 또한 매개 변수는 PowerShell에서 AD 사용자의 이름, SID 및 사용자 주체 이름 속성을 선택합니다.활성 디렉터리 및 Office 365 보고 및 감사 도구 시도

우리의 Active Directory & Office 365 보고 및 감사 도구를 사용해 보세요

저희를 시험해보세요 무료로. 수백 가지 보고서 템플릿을 사용할 수 있습니다. AD, Azure AD 및 Office 355에 대한 자신의 보고서를 쉽게 맞춤설정할 수 있습니다.




PowerShell을 통해 Active Directory 컴퓨터 SID 가져오기

우리는 사용자의 SIDs뿐만 아니라 도메인에 가입된 컴퓨터의 SIDs도 얻을 수 있습니다. Get-ADComputer 명령을 사용하여 Active Directory 컴퓨터 SID를 얻을 수 있습니다. 필터 매개 변수를 사용하여 여러 AD 컴퓨터의 여러 SIDs를 얻을 수 있습니다.

Get-ADComputer -Filter * | Select-Object Name, SID

위의 PowerShell에서 Get-ADComputer cmdlet은 Active Directory에서 컴퓨터 계정 세부 정보를 가져오고 파이프 연산자를 사용하여 Active Directory의 컴퓨터 이름과 SID를 선택합니다.

PowerShell을 통해 Active Directory 그룹 SID 가져오기

유저와 컴퓨터처럼, 우리는 그룹의 SID를 얻을 수 있습니다. 왜냐하면 그룹은 AD 객체로 간주되기 때문입니다. 활성 디렉토리에서 AD 그룹 SID를 얻으려면 Get-ADGroup cmdlet을 사용하세요.

Get-ADGroup -Identity SalesLeader | Select-Object Name, SID

Get-ADGroup cmdlet은 PowerShell 스크립트에서 Identity 매개변수로 지정된 그룹 계정을 가져옵니다. 다음으로, 파이프 연산자를 사용하여 활성 디렉토리에서 AD 그룹의 Name과 SID 속성을 선택하세요.

PowerShell에서 모든 도메인의 SID를 얻으려면

Active Directory 포리스트(AD 포리스트)는 활성 디렉토리 구성에서 도메인, 사용자, 기계 및 그룹 규칙을 포함하는 논리적 컨테이너입니다.

다음과 같이 활성 디렉토리의 Get-ADForest cmdlet을 사용하여 활성 디렉토리에서 모든 도메인의 SID를 찾을 수 있습니다.

(Get-ADForest).Domains| %{Get-ADDomain -Server $_} | Select-Object name, domainsid

활성 디렉토리 객체에서 SID 찾기 결론

우리는 Get-ADUser, Get-ADComputer, 그리고 Get-ADGroup 같은 Active Directory cmdlet을 사용하여 활성 디렉터리 사용자 및 컴퓨터에서 SID를 찾을 수 있습니다. 더 나아가, 로컬 사용자와 전체 도메인의 SID를 가져오기 위해서도 Get-LocalUserGet-ADDomain을 포함하였습니다.

Source:
https://infrasos.com/find-sid-in-active-directory-users-and-computers-using-powershell/