Computer >> 컴퓨터 >  >> 체계 >> Windows Server

PowerShell로 Active Directory 그룹 관리

ADUC(Active Directory 사용자 및 컴퓨터) 그래픽 스냅인은 Active Directory에서 보안 그룹을 관리하기 위한 유일한 도구가 아닙니다. Active Directory 도메인의 사용자 그룹을 일상적으로 관리하기 위해 간단한 PowerShell 명령을 사용할 수 있습니다. 이 기사에서는 PowerShell을 사용하여 AD에서 새 그룹을 만들고, 그룹에 사용자를 추가(또는 삭제)하고, 그룹 사용자 목록을 표시/내보내고, AD를 관리할 때 자주 사용되는 기타 유용한 명령을 살펴봅니다. 여러 떼.

AD 그룹을 관리하기 위해 Windows PowerShell용 Active Directory 모듈을 사용할 수 있습니다. RSAT-AD-PowerShell 모듈은 Windows Server의 모든 버전(Windows Server 2008R2부터)에서 사용할 수 있으며 Windows 10 및 Windows 11 데스크톱에서 RSAT 기능으로 설치할 수 있습니다.

AD 모듈이 현재 PowerShell 세션에 로드되었는지 확인:

Get-Module -Listavailable

PowerShell로 Active Directory 그룹 관리

보시다시피 ActiveDirectory 모듈이 로드됩니다. 그렇지 않은 경우 다음 명령을 사용하여 가져옵니다.

Import-Module ActiveDirectory

AD 그룹을 관리할 수 있는 PowerShell cmdlet을 나열해 보겠습니다.

Get-Command -Module ActiveDirectory -Name "*Group*"

11개의 cmdlet을 사용할 수 있습니다.

PowerShell로 Active Directory 그룹 관리

  • ADGroupMember 추가
  • ADPrincipalGroupMembership 추가
  • Get-ADAccountAuthorizationGroup
  • Get-ADGroup
  • Get-ADGroupMember
  • Get-ADPrincipalGroupMembership
  • 새 AD그룹
  • ADGroup 제거
  • ADGroupMember 제거
  • ADPrincipalGroupMembership 제거
  • Set-ADGroup

New-ADGroup:PowerShell로 새 AD 그룹 만들기

New-ADGroup 을 사용하여 지정된 Active Directory 컨테이너(OU)에 새 보안 그룹을 만듭니다. 명령:

New-ADGroup "TestADGroup" -path 'OU=Groups,OU=NY,OU=US,DC=corp,dc=woshub,DC=com' -GroupScope Global -PassThru –Verbose

설명을 사용할 수 있습니다. 및 DisplayName 속성을 사용하여 그룹 설명 및 표시 이름을 지정합니다.

PowerShell로 Active Directory 그룹 관리

GroupScope를 사용할 수 있습니다. 매개변수는 다음 유형의 그룹 중 하나를 설정할 수 있습니다.

  • 0 =도메인 로컬
  • 1 =글로벌
  • 2 =범용

다음과 같이 메일 그룹을 만들 수 있습니다.

New-ADGroup "TestADGroup-Distr" -path 'OU=Groups,OU=NY,OU=US,DC=corp,dc=woshub,DC=com' -GroupCategory Distribution -GroupScope Global -PassThru –Verbose

메일 그룹을 사용하여 이메일을 보내거나 AD 권한을 부여할 수 있습니다. 여기에서 Exchange 메일 그룹에 대해 자세히 알아보세요.

AD 그룹을 생성할 때 모든 속성을 채울 수 있습니다. 다양한 그룹 속성의 값을 설정하는 가장 쉬운 방법은 해시 테이블을 사용하는 것입니다.

$attrs = @{"mail"="mundmins@woshub.com";"displayname"="ALL Munich Admins"}
New-ADGroup -Name MUNAdmins -GroupScope Global -OtherAttributes $attrs

Add-AdGroupMember를 통해 Active Directory에 사용자 추가

Add-AdGroupMember를 사용하여 Active Directory 그룹에 사용자를 추가할 수 있습니다. cmdlet. 새 그룹에 두 명의 사용자를 추가해 보겠습니다.

Add-AdGroupMember -Identity TestADGroup -Members user1, user2

PowerShell로 Active Directory 그룹 관리

한 번에 많은 수의 사용자를 그룹에 추가해야 하는 경우 사용자 이름 목록을 CSV 파일에 저장한 다음 이 파일을 PowerShell로 가져오고 간단한 PowerShell 스크립트를 사용하여 각 사용자를 그룹에 추가할 수 있습니다.

CSV 파일의 형식은 다음과 같아야 합니다(사용자는 users와 함께 한 행에 하나씩 나열되어야 합니다. 열 머리글로).

PowerShell로 Active Directory 그룹 관리

Import-CSV .\users.csv -Header users | ForEach-Object {Add-AdGroupMember -Identity ‘TestADGroup’ -members $_.users}

그룹(groupX)의 모든 구성원을 가져와 다른 그룹(groupY)에 추가하려면 다음 명령을 사용하십시오.

Get-ADGroupMember “GroupX” | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity “Group-Y” -Members $_}

모든 중첩 그룹의 구성원을 새 그룹에(재귀적으로) 복사해야 하는 경우 다음 명령을 실행하십시오.

Get-ADGroupMember -Identity “GroupX” -Recursive | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity “GroupY” -Members $_}

이전 기사에서는 한 사용자의 AD 그룹 구성원 자격을 복사하고 동일한 그룹 목록에 다른 사용자를 추가할 수 있는 PowerShell 스크립트를 보여주었습니다.

Windows2016Forest 스키마 이상에서 Active Directory의 임시(시간 기반) 그룹 구성원 기능을 사용할 수 있습니다. AD 그룹에 일시적으로 사용자를 추가하려면(예:1시간 동안) 다음 명령을 실행합니다.

$ttl = New-TimeSpan -Minutes 60
Add-ADGroupMember -Identity "Domain Admins" -Members j.lennon -MemberTimeToLive $ttl

한 시간 후 이 사용자는 이 보안 그룹에서 자동으로 제거됩니다.

Remove-ADGroupMember:PowerShell을 사용하여 AD 그룹에서 사용자 제거

AD 그룹에서 사용자를 제거하려면 Remove-ADGroupMember를 사용하세요. cmdlet. 그룹에서 두 명의 사용자를 제거하겠습니다.

Remove-ADGroupMember -Identity TestADGroup -Members user1, user2

사용자 제거 확인:

PowerShell로 Active Directory 그룹 관리

CSV 파일의 사용자 목록에 따라 그룹에서 사용자를 제거해야 하는 경우 다음 명령을 사용하십시오.

Import-CSV .\users.csv -Header users | ForEach-Object {Remove-ADGroupMember -Identity ‘TestADGroup’ -members $_.users}

Azure AD와 달리 온-프레미스 Active Directory에서 동적 사용자 그룹을 사용할 수 없습니다. 그러나 Add-ADGroupMember를 사용하여 그룹에서 사용자를 자동으로 추가하거나 제거하는 예약된 PowerShell 스크립트를 만들 수 있습니다. 및 Remove-ADGroupMember cmdlet. PowerShell을 사용하여 Active Directory에서 동적 사용자 그룹을 만드는 방법에 대해 자세히 알아보세요.

Get-ADGroup으로 Active Directory 그룹 찾기

Get-ADGroup cmdlet은 AD 도메인 그룹에 대한 정보를 얻는 데 도움이 됩니다.

Get-ADGroup 'TestADGroup'

이 명령은 그룹의 주요 속성(DN, 그룹 유형, 이름, SID)에 대한 정보를 표시합니다. 모든 그룹 속성의 값을 표시하려면 다음 명령을 실행하십시오.

Get-ADGroup 'TestADGroup' -properties *

PowerShell로 Active Directory 그룹 관리

보시다시피 그룹 생성 및 수정 시간, 설명 등의 속성이 표시됩니다.

Get-ADGroup cmdlet을 사용하여 패턴별로 AD의 그룹을 검색할 수 있습니다. 예를 들어 다음 명령을 사용하여 admins 구가 포함된 모든 AD 그룹을 찾을 수 있습니다. 그들의 이름으로:

Get-ADGroup -LDAPFilter “(name=*admins*)” | Format-Table

또는:

Get-ADGroup -Filter {name -like "*admins*"} -Properties Description,info | Select Name,samaccountname,Description,info

Get-ADGroup을 사용하여 그룹 구성원 목록을 가져올 수 있습니다(구성원 속성):

Get-ADGroup -Identity "Domain Admins" -Properties members | Select-Object -ExpandProperty members

그러나 Get-ADGroupMember를 사용하는 것이 훨씬 더 편리합니다. cmdlet을 사용하여 그룹 구성원 자격을 얻습니다.

Get-ADGroupMember:Active Directory 그룹 구성원을 가져오고 내보내는 방법

Get-ADGroupMember cmdlet을 사용하면 AD 그룹의 구성원을 가져올 수 있습니다. 사용자, 컴퓨터, 기타 그룹 또는 관리 서비스 계정(MSA/gMSA)이 될 수 있습니다.

Get-ADGroupMember 'TestADGroup'

결과에 사용자 이름만 표시하려면 다음을 실행하십시오.

Get-ADGroupMember 'TestADGroup'| ft name

PowerShell로 Active Directory 그룹 관리

이 그룹에 다른 도메인 그룹이 포함된 경우 재귀 모든 중첩 그룹을 포함하여 전체 구성원 목록을 표시하는 매개변수입니다.

Get-ADGroupMember ADadmins -recursive| ft name

특정 그룹의 구성원인 계정 목록을 CSV 파일로 내보내려면(Excel에서 추가로 사용하기 위해) 다음 명령을 실행합니다.

Get-ADGroupMember 'ADadmins' -recursive| ft samaccountname| Out-File c:\PS\ADadminsList.csv

그룹의 사용자에 대한 정보를 텍스트 파일로 내보낼 수 있습니다. Get-ADUser cmdlet은 사용자의 확장된 특성을 가져오는 데 사용됩니다. 예를 들어, 계정 이름 외에도 그룹 사용자의 UserPrincipalName, 직위 및 전화번호를 표시할 수 있습니다.

Get-ADGroupMember -Identity ADadmins -recursive| foreach { Get-ADUser $_ -properties title, OfficePhone|Select-Object title, OfficePhone }

다음과 같이 그룹의 사용자 수를 계산할 수 있습니다.

(Get-ADGroupMember -Identity 'domain admins').Count

PowerShell로 Active Directory 그룹 관리

특정 OU의 빈 그룹 목록을 가져오려면 다음 명령을 사용하십시오.

Get-ADGroup -Filter * -Properties Members -searchbase “OU=NY,OU-US,DC=corp,dc=woshub,DC=com”  | where {-not $_.members} | select Name 선택

Get-ADGroupMember cmdlet은 누군가가 특정 AD 그룹에 새 사용자를 추가했음을 관리자에게 알리는 간단한 PowerShell 스크립트를 만드는 데 사용할 수 있습니다.

Set-ADGroup:Active Director 그룹 속성 수정

Set-ADGroup cmdlet을 사용하면 모든 Active Directory 그룹의 속성(특성)을 변경할 수 있습니다. 예를 들어 그룹의 설명과 이름을 변경할 수 있습니다.

Set-ADGroup -Identity MunAdmins -Description “Munich Admins Group”

또는:

Get-ADGroup -Identity MunAdmins | Set-ADGroup -Description “Munich Admins Group”

Exchange GAL에서 특정 그룹 숨기기:

Set-ADGroup –id MunAdmins -replace @{hideDLMembership=$true}

여러 그룹 속성을 한 번에 변경할 수 있습니다. HashTable을 사용하여 변경 목록을 설정하는 것이 편리합니다.

$attrs = @{"mail"="munadmins@woshub.com";"displayname"="ALL MUN Admins"}
Set-ADGroup -Identity MunAdmins –Add $attrs

PowerShell로 Active Directory 그룹 관리

get-adgroup munadmins -Properties *를 사용하여 AD 그룹 속성 목록을 가져올 수 있습니다. 또는 ADUC 콘솔의 속성 편집기 탭에서.

Remove-ADGroup:PowerShell을 사용하여 Active Directory에서 그룹을 어떻게 삭제합니까?

Active Directory에서 그룹을 제거하려면 Remove-ADGroup을 사용하세요. cmdlet:

Remove-ADGroup -Identity MunSales

PowerShell로 Active Directory 그룹 관리

그룹을 삭제할 때 삭제를 확인하는 메시지가 표시됩니다. 제거 확인을 비활성화하려면 확인을 추가하세요. 스위치:

Remove-ADGroup -Identity MunSales –Confirm:$false

제거된 그룹(및 기타 AD 개체)은 Active Directory 휴지통에서 복원할 수 있습니다.

Get-ADObject -Filter {Deleted -eq $True -and ObjectClass -eq 'group' -and Name -like '*MunSales*' } –IncludeDeletedObjects| Restore-ADObject –verbose