Adam the Automator (한국어)

PowerShell의 널리 사용되는 용도는 AD (Active Directory Directory Services)와 함께 작동하는 것입니다. PowerShell이 AD 개체를 사용하여 시간을 절약 할 수있는 작업이 너무 많습니다. PowerShell을 사용하면 AD 그룹 구성원 및 그룹을 가져 오는 데 많은 시간이 절약됩니다.

Active Directory 그룹은 사용자 계정을 세분화하는 좋은 방법입니다. 그룹을 통해 관리자는 여러 시스템에서 리소스 액세스를 정의 할 수 있습니다.

이 문서에서는 PowerShell을 사용하여 AD 그룹 구성원을 가져오고 AD 그룹 구성원을 내보내겠습니다. 그런 다음이 정보를 사용하여 흥미로운 보고서를 생성 할 수 있습니다.

목차

전제 조건

이 문서를 따르려면 다음 요구 사항이 준비되어 있는지 확인하십시오.

  • 도메인에 가입 된 Windows 10 컴퓨터에서 작업
  • AD 그룹 및 사용자 계정을 읽을 수있는 사용자로 로그인했습니다.
  • PowerShell Active Directory 모듈을 설치했습니다.

기본 사항 알아보기

AD 그룹 및 그룹 구성원을 쿼리하려면 Get-AdGroupGet-AdGroupMember의 두 가지 PowerShell cmdlet을 사용할 수 있습니다.

Get-ADGroup는 도메인 컨트롤러를 쿼리하고 AD 그룹 개체를 반환합니다. Get-AdGroupMember는 각 그룹 내부를 살펴보고 해당 그룹에있는 모든 사용자 계정, 그룹, 연락처 및 기타 개체를 반환합니다.

AD 그룹 가져 오기

PowerShell로 AD 그룹을 찾으려면 Get-ADGroup cmdlet을 사용할 수 있습니다. 매개 변수가없는 Get-ADGroup는 AD를 쿼리하고 Filter 매개 변수를 사용하여 도메인의 모든 그룹을 반환합니다. Filter 매개 변수는 필수입니다. 다양한 기준에 따라 반환되는 그룹을 제한하기 위해 존재합니다.

예를 들어 기준에 관계없이 모든 그룹을 찾으려면 Get-ADGroup를 사용하고 와일드 카드 ( 별표)는 Filter 매개 변수입니다. 아래의 예를 볼 수 있습니다. 도메인에 수백 또는 수천 개가있는 경우 이러한 모든 그룹을 스크롤하는 데 시간이 걸릴 수 있습니다.

단일 그룹을 찾아야하는 경우 다음을 수행 할 수 있습니다. Identity 매개 변수를 사용합니다.

Identity 매개 변수는 모든 Active Directory PowerShell cmdlet의 공통 매개 변수입니다. 이를 통해 쿼리를 단일 AD 개체로 제한 할 수 있습니다. 예를 들어, HR이라는 그룹이 존재하는지 확인해야하는 경우 아래 명령을 실행하여 확인할 수 있습니다.

AD 그룹 구성원 가져 오기

PowerShell을 사용하여 AD 그룹의 구성원을 나열하려면 Get-ADGroupMember cmdlet이 필요합니다. 이 cmdlet은 특정 그룹의 사용자, 그룹 및 컴퓨터 개체를 가져옵니다. 관리자 그룹의 모든 구성원을 찾아야 할 수도 있습니다. 가장 간단한 형식에서는 Identity 매개 변수를 다시 사용하여 아래와 같이 그룹 이름을 지정하면됩니다.

Get-AdGroupMember는 사용자, 그룹 및 컴퓨터에 대한 그룹 멤버십 만 반환합니다. 연락처와 같은 다른 AD 개체는 반환하지 않습니다.

그룹 구성원 내부의 그룹 구성원 열거

알다시피 AD 그룹 사용자 계정뿐만 아니라 중첩이라고도하는 다른 그룹도 포함 할 수 있습니다. 그룹이 다른 그룹 내에 중첩되면 해당 그룹의 구성원은 상위 그룹에 할당 된 동일한 권한을 상속합니다.

기본적으로 PowerShell Get-AdGroupMember cmdlet은 중첩 된 그룹 구성원을 반환하지 않습니다. 이를 수정하려면 Recursive 매개 변수를 사용할 수 있습니다. 예를 들어 아래와 같이 Recursive 매개 변수를 사용하여 HR 그룹 내부에 중첩 된 그룹 구성원을 찾을 수 있습니다.

한 번에 여러 그룹 / 구성원 가져 오기

한 번에 여러 그룹 또는 그룹 구성원에 대해 AD를 쿼리해야하는 경우 PowerShell foreach 루프를 사용하여 수행 할 수도 있습니다. foreach 루프는 컬렉션의 각 항목에 대해 명령 또는 코드를 실행합니다. 이 경우 해당 컬렉션은 그룹 이름 목록이됩니다.

HR, 회계 및 IT 그룹에서 모든 그룹 구성원을 찾아야 할 수도 있습니다. 이를 위해 먼저 이러한 그룹 이름의 모음 또는 배열을 만듭니다. 아래 예에서는이 컬렉션을 $groupNames로 정의합니다. 그런 다음 해당 컬렉션의 각 이름에 대해 Get-ADGroupMember를 실행하여 각 그룹의 이름을 Identity 매개 변수에 제공합니다.

또는 ForEach-Object cmdlet을 사용하여 그룹을 반복 할 수 있습니다. p>

대체 자격 증명 사용

다른 많은 PowerShell cmdlet과 마찬가지로 AD 그룹 cmdlet에는 Credential 매개 변수.기본적으로 AD 그룹 cmdlet을 실행할 때마다 로그인 한 자격 증명을 사용하여 Active Directory를 쿼리합니다. 이 동작은 권한이있는 Active Directory 사용자로 로그인 한 도메인에 가입 된 컴퓨터에 있어야 함을 나타냅니다.

하지만 작업 그룹 컴퓨터를 사용하거나 다른 사용자로 AD에 인증해야하는 경우 어떻게해야합니까? 사용자? 이 경우 Credential 매개 변수를 사용할 수 있습니다. 이 매개 변수를 사용하면 인증에 사용할 사용자 이름과 비밀번호를 지정할 수 있습니다.

예를 들어 사용자 계정에 AD 작업을 수행 할 권한이 없을 수 있습니다. 추가 권한이있는 서비스 계정이 있습니다. 표준 사용자로 로그인 할 수 있지만 아래와 같이 서비스 계정으로 인증 할 수 있습니다.

Get-Credential cmdlet은 사용자 이름 / 비밀번호를 입력하라는 메시지를 표시합니다. 신임장. 그런 다음이 자격 증명은 인증을 위해 Get-AdGroup cmdlet에 전달됩니다.

Credential 매개 변수는 인증 자격 증명을 제공하기 위해 PowerShell에서 어디에나 있습니다. 자세한 내용은 PowerShell Get-Credential cmdlet 사용 및 모든 정보 자격 증명을 참조하세요.

Get-ADGroup을 사용하여 그룹 구성원 가져 오기?

반 직관적으로 들릴 수 있지만 Get-ADGroup cmdlet을 사용하여 그룹 구성원을 얻을 수도 있습니다.

Get-ADGroupmembers라는 각 그룹의 속성을 반환합니다. 이는 그룹의 구성원 인 AD 개체의 모음입니다.

예를 들어 Get-ADGroupMember를 사용하지 않고 해당 HR 그룹에서 그룹 구성원을 다시 찾으려면 다음을 수행 할 수 있습니다. 다음과 같이하십시오.

왜이 방법을 다른 방법보다 사용합니까? 가장 큰 차이점은 members 속성에는 사용자, 컴퓨터 및 기타 그룹뿐 아니라 모든 유형의 AD 개체가 포함되어 있다는 것입니다.

여러 그룹 내에 연락처가있을 수 있습니다. . Get-ADGroupMember를 실행하면 해당 연락처가 표시되지 않습니다. 그러나 Get-ADGroup에 아래에 표시된대로 해당 컬렉션을 확장하면서 해당 그룹의 모든 구성원을 반환하도록 지시하면 연락처가 표시됩니다.

특정 AD 속성 찾기

위의 기본 섹션에서는 단순히 모든 그룹과 그룹 구성원을 반환했습니다. 각 그룹 및 그룹 구성원에 대해 반환되는 정보는 각 개체 유형과 관련된 AD 특성의 하위 집합 일뿐입니다.

사용자 계정의 이메일 주소, 마지막 로그온 날짜 또는 기타 관련 AD 특성을보고 싶을 수 있습니다. ? 이렇게하려면 창의력을 발휘해야합니다.

HR 그룹의 모든 그룹 구성원을 찾을 수 있었지만 각 사용자 계정의 이메일 주소도 확인해야하나요?

결과 필터링

지금까지 모든 그룹과 그룹 구성원을 찾았지만 일상적인 작업 환경에서는이 작업을 거의 수행 할 필요가 없습니다. 각 항목의 제한된 수만 찾으면됩니다. AD 그룹 cmdlet에는이를 처리 할 수있는 몇 가지 방법이 있습니다.

필터 매개 변수

앞서 언급했듯이 두 cmdlet에는 모두 Filter가 있습니다. 매개 변수. 이 매개 변수를 사용하면이 문서의 범위를 벗어나 다양한 방식으로 반환되는 내용을 제한 할 수 있습니다.

Filter 매개 변수를 사용하면 모든 AD로 결과를 제한 할 수 있습니다. 이름, 그룹 유형, 이메일 주소, 사용자의 마지막 로그온 등과 같은 속성입니다.

예를 들어 보안 그룹 만 찾고 싶을 수 있습니다. 이 경우 GroupCategory 속성을 지정하고 Security 그룹 만 반환되도록 조건을 설정합니다.

모든 보안 그룹을 찾으려고 할 수 있지만 도메인 로컬 그룹이 아니어야합니다. 그런 다음 도메인 로컬 그룹이 반환되지 않도록 다른 조건 (이번에는 -ne 연산자 사용)을 추가합니다.

쿼리 필터를 만드는 방법을 배우려면 PowerShell에서 Active Directory 및 LDAP 필터 학습을 확인하세요.

OU (조직 단위)별로 그룹 결과 제한

OU에 여러 그룹이 중첩되어있을 수 있습니다. 모든 그룹을 찾을 필요는 없지만 특정 OU에있는 그룹 만 찾을 수 있습니다. 이 경우 SearchBase 매개 변수를 사용할 수 있습니다.

SearchBase 매개 변수를 사용하면 OU의 고유 한 그룹 검색을 시작할 이름 (DN). 예를 들어 도메인 루트에 Locations라는 OU가있을 수 있습니다. Locations OU에는 Austin, NYC 및 Los Angeles와 같이 생성 된 각 위치 OU가 있습니다. NYC OU에있는 그룹 만 찾고 있으며 다른 그룹은 볼 수 없도록 제한해야합니다.

아래는 AD OU 구조의 예입니다.다른 그룹은 Locations OU 외부에 존재합니다.

아마도 NYC OU에만있는 모든 AD 그룹을 찾아야 할 수도 있습니다. 검색어를 제한하려면 아래와 같이 DN을 제공하는 SearchBase 매개 변수를 사용합니다. Locations OU 내의 모든 그룹이 반환됩니다.

하지만 이제는 Locations OU 아래의 모든 OU에서 모든 그룹을 찾아야합니다. Get-ADGroup는 하위 OU가 아니라 위치 OU 자체의 그룹 만 반환합니다.

하위 OU 내의 그룹을 반환하려면 SearchScope 매개 변수. 이 매개 변수는 하위 개체도 검사한다는 점에서 Recursive 매개 변수와 유사합니다.

예를 들어 위치 OU 아래에있는 OU의 모든 그룹을 찾으려면, Subtree 또는 2를 지정하십시오. SearchScope에 대한이 값은 Get-ADGroup가 모든 하위, 손자 및 하위 OU를 재귀 적으로 보도록 지시합니다.

SearchScope 매개 변수 옵션에 대한 전체 분석은 Get-ADGroup 문서를 참조하세요. p>

AD 그룹 및 구성원 내보내기

마지막으로 필요한 그룹 및 그룹 구성원을 쿼리하고 반환하는 방법을 알게되었습니다. 이 모든 정보는 PowerShell 콘솔로 전송됩니다. 하지만 이제이 정보를 CSV 파일이나 Excel 워크 시트로 가져와야합니다.

지금해야 할 일은 모든 정보를 파일로 보내는 것뿐입니다.

내보내기 CSV

광고 정보를 내보내는 데 널리 사용되는 형식 중 하나는 CSV입니다. PowerShell에는 PowerShell 출력에서 Export-Csv라는 CSV 파일을 쉽게 만들 수있는 편리한 cmdlet이 있습니다.

이 문서에서 다루는 모든 명령에서 CSV 파일을 만들 수 있습니다. Export-Csv에 파이핑하여 아래 예를 사용하면 Get-AdGroup가 콘솔로 반환했을 모든 출력을 대신 CSV 파일로 리디렉션합니다.

이 편리한 cmdlet에 대한 자세한 내용은 Export-Csv : CSV 파일을 일류 시민으로 취급하는 PowerShell 방식을 참조하십시오.

Excel로 내보내기

PowerShell에는 정보를 Excel로 내보내는 기본 방법이 없습니다. 그러나 언제든지 ImportExcel이라는 무료 커뮤니티 모듈을 다운로드 할 수 있습니다. 이 모듈은 CSV와 유사한 내보내기 기능을 Excel 워크 시트로 직접 가져옵니다. PowerShell 모듈을 설치하려면 Install-Module ImportExcel -Scope CurrentUser를 실행합니다.

CSV 파일 대신 위의 예를 사용하여 그룹을 Excel 워크 시트로 내 보내야했습니다. 아래와 같이 Export-Excel cmdlet을 사용합니다.

ImportExcel 모듈에는 작동 할 수있는 수많은 기능이 있습니다. Excel로. 더 멋진 워크 시트가 필요한 경우 기능이있을 수 있습니다.

ImportExcel 모듈 사용에 대한 자세한 내용은이 문서를 참조하세요. 처리 할 수있는 몇 가지 일반적인 사용 사례에 대한 훌륭한 소개를 제공합니다.

결론

두 개의 PowerShell cmdlet을 사용하여 다음을 수행 할 수 있습니다. 광고 그룹과 관련된 모든 것. 이 기사는 사용 가능한 기능에 대한 소개 일뿐입니다. 여기에 수집 된 지식을 사용하고, 기사의 더 깊은 주제에 대한 링크를 따라 가며 무엇을 만들 수 있는지 확인하세요!

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다