파워쉘(PowerShell)을 사용하여 활성 디렉터리(Active Directory) 컴퓨터 보고서를 생성합니다. 활성 디렉터리(AD) 컴퓨터 객체 및 속성에 관한 모든 것을 찾기 위해 주로 사용하는 것은 Get-ADComputer cmdlet입니다. 예를 들어, 활성 디렉터리 도메인에서는 Get-ADComputer PowerShell cmdlet을 사용하여 컴퓨터 계정 객체(서버 및 워크스테이션)에 대한 정보를 가져올 수 있습니다. 이 cmdlet은 다양한 기준으로 AD 컴퓨터를 검색하는 데 가장 유용한 것 중 하나입니다.
이 문서에서는 Get-ADComputer cmdlet의 다양한 사용 방법과 이를 포괄적이고 가치 있는 보고서로 변환하는 방법에 대해 논의합니다.
이제 기사 블로그인 “파워쉘(PowerShell)을 사용하여 활성 디렉터리(Active Directory) 컴퓨터 보고서 생성”에서 시작해 보겠습니다.
PowerShell로 Active Directory 컴퓨터 보고서 생성
전제 조건
이 기사의 예제 스크립트를 따라하려면 다음 사항을 반드시 준비하십시오:
- 적어도 하나의 도메인 가입 워크스테이션으로 구성된 AD 환경.
- 도메인 기능 수준 – Windows Server 2016.
- Active Directory용 원격 서버 관리 도구 (RSAT)이 도메인 가입 워크스테이션에 설치되어 있어야 합니다.
- 최신 PowerShell 버전 또는 최소한 PowerShell 7.x 및 그 이상이 필요합니다. 스크립트를 실행하려면.
자, PowerShell로 Active Directory 컴퓨터 보고서를 생성하는 방법은 무엇인가요? 알아봅시다.
Get-ADComputer Powershell 명령어 이해
시작하기 전에, 우리는 Get-ADComputer 명령을 익히는 것이 좋습니다. 우리는 Active Directory에서 정보를 얻기 위해 도메인 관리자 권한이 필요하지 않습니다. 도메인 사용자 또는 인증된 사용자 그룹의 일반 사용자 계정을 사용하는 것으로 충분합니다.
자, 일반적으로 Get-Help 명령은 Get-ADComputer cmdlet에 대한 모든 다른 매개 변수 목록을 제공합니다:
$command = Get-ADComputer
Get-Help $command
샘플 출력:
또는, 우리는 Get-ADComputer 명령어의 공식 문서에 액세스할 수 있습니다. 여기에서.
특정 컴퓨터 계정에 대한 정보를 얻으려면 그 이름을 인수로 사용하여 -Identity 매개 변수를 사용하십시오:
Get-ADComputer -Identity DC01
다음은 샘플 출력입니다:
DistinguishedName : CN=DC01,OU=Servers,OU=DC,OU=IT,DC=infrasos,DC=com
DNSHostName : DC01.infrasos.com
Enabled : True
Name : DC01
ObjectClass : computer
ObjectGUID : 87654321-1204-5578-0000-123462341264
SamAccountName : DC01
SID : S-1-5-21-123656780-1234667890-0986654321-1264
결과적으로, Get-ADComputer cmdlet은 AD에서 컴퓨터 개체의 기본 속성만 반환했습니다. 그러나 위의 명령을 실행하면 컴퓨터 개체에 대한 최상위 정보만 제공합니다. 그런 다음 객체의 사용 가능한 속성을 자세히 살펴보고 싶다면 -Properties 매개 변수를 사용할 수 있습니다.
객체의 모든 속성을 나열하려면 -Properties 매개 변수를 추가하고 asterisk 값을 추가하십시오 (*). 별표 값은 모두를 나타내는 와일드카드 값입니다:
Get-ADComputer -Identity DC01 -Properties *
샘플 출력:
한편, 우리는 Active 디렉터리 사용자 및 컴퓨터 콘솔(또는 dsa.msc) 내에서 탐색하고 거기서 속성을 볼 수 있습니다. 마지막으로, 컴퓨터 개체를 선택하고 다음으로 이동하여 속성 편집기 탭에서 컴퓨터 개체 속성 목록을 볼 수 있습니다.
Get-ADComputer 결과 필터링
단점 중 하나는 필요하지 않은 정보를 더 많이 표시할 수 있다는 것입니다. PowerShell 파이프라인을 사용하면 Get-ADComputer cmdlet을 사용하여 명령줄에서 특정 컴퓨터 속성을 표시할 수 있습니다. 예를 들어, 우리는 값이 Name 그리고 LastLogonDate 속성만 출력으로 남길 수 있습니다. Format-Table 명령을 파이핑하여 기본 구문에 넘겨주면 됩니다:
Get-ADComputer -Identity DC01 -Properties * | Format-Table Name, LastLogonDate -Autosize
샘플 출력:
여기서 Windows PowerShell은 실제 데이터에 따라 열 너비를 계산합니다. 우리가 AutoSize 매개변수를 명령을 실행할 때 지정하면, 모든 것이 요약됩니다.Format-Table 명령을 실행할 때 열이 읽기 쉽게 됩니다.
그러나 이전 명령은 하나의 AD 컴퓨터 객체만 검색합니다. 따라서 도메인의 모든 컴퓨터에 대한 정보를 원한다면 Identity 매개 변수를 Filter:
Get-ADComputer -Filter * -Properties * | Format-Table Name, Created -Autosize
로 대체할 수 있습니다. 샘플 출력은 다음과 같습니다:
컴퓨터 이름과 객체 생성 날짜 두 가지 필드만 포함된 간단한 서식이 있는 표를 얻었습니다. AD의 컴퓨터 객체의 다른 열을 이 표에 추가하려면 파이프 라인의 Format-Table 섹션에 속성을 추가하면 됩니다.
특정 조직 단위(OU)의 컴퓨터 객체에 대한 정보를 가져오려면 –SearchBase 매개 변수를 사용할 수 있습니다.
Get-ADComputer -SearchBase ‘OU=IT,DC=infrasos,DC=com’ -Filter * -Properties * | Format-Table Name, Created -Autosize
또한 파이프라인에 Sort-Object cmdlet을 삽입하여 쿼리 결과를 정렬할 수도 있습니다:
Get-ADComputer -Filter * -Properties * | Sort-Object Created | Format-Table Name, Created -Autosize
Sort-Object 명령은 먼저 Get-ADComputer 결과를 Created를 기준으로 정렬한 다음 표시를 위해 Format-Table로 전달합니다.
PowerShell (GPO)로 Active Directory 그룹 정책 보고서 만들기 읽기
Get-ADComputer와 검색 필터 사용
우리는 Get-ADComputer cmdlet의 -Filter 인수를 사용하여 특정 기준에 따라 여러 AD 컴퓨터를 검색합니다. 주의할 점은 이 경우 와일드카드와 논리 비교 연산자를 사용할 수 있다는 것입니다. 필터로서 우리는 주 컴퓨터 개체 속성만 사용할 수 있습니다.
또한 확장된 컴퓨터 속성에 대한 검색 필터를 사용해야 하는 경우 Where-Object 파이프를 사용합니다. 다음은 도메인에서 Get-ADComputer cmdlet를 사용하여 컴퓨터 개체를 쿼리하고 검색하는 방법에 대한 더 실용적인 예제입니다.
Active Directory에서 모든 활성 및 차단되지 않은 컴퓨터의 총 수를 가져옵니다:
우리는 동시에 여러 필터를 사용하여 컴퓨터를 검색합니다. PowerShell 논리 비교 연산자를 사용하여 이를 수행합니다.
(Get-ADComputer -Filter {Enabled -eq "true"}).Count
AD 도메인에서 모든 Windows Server 호스트를 표시합니다:
Get-ADComputer -Filter {OperatingSystem -Like '*Windows Server*' }
특정 OU에 있는 이름이 DC로 시작하는 모든 컴퓨터의 목록을 가져옵니다:
Get-ADComputer -Filter {Name -like "DC*"} -SearchBase ‘OU=IT,DC=infrasos,DC=com’ -Properties * | Format-Table Name
OU에서 검색할 때, 우리는 –SearchScope1 매개변수를 사용하여 검색을 루트 OU로 제한할 수 있습니다. -SearchScope2 옵션은 모든 OU의 컴퓨터에 대한 재귀적 검색을 수행합니다.
PowerShell을 사용하여 Active Directory 사용자 및 컴퓨터에서 SID 찾기
Get-ADComputer를 사용하여 여러 컴퓨터 관리
우리는 Foreach-Object 루프를 사용하여 결과 목록의 모든 컴퓨터에 대해 특정 작업을 수행해야 합니다.이 예에서는 Windows 관리 인프라 또는 공통 정보 클래스를 사용하여 여러 AD 컴퓨터에 원격으로 쿼리할 수 있습니다:
Get-ADComputer -Filter * -Property * |
Select-Object Name,OperatingSystem |
Foreach-Object {
Get-CimInstance Win32_Bios -ComputerName $_.Name -ErrorAction SilentlyContinue |
Select-Object PSComputerName
}
명백하게 이 예에서는 도메인의 Windows Server 호스트 목록과 그 모델 및 제조업체를 얻고 싶다면 동일한 루핑 방법을 사용하여 컴퓨터 속성을 가져옵니다.
$Computers = Get-ADComputer -Filter {OperatingSystem -Like '*Windows Server*'}
Foreach ($Computer in $Computers){
$Hostname = $Computer.Name
$ComputerInfo = (Get-WmiObject -Computername $Hostname Win32_ComputerSystem)
$Manufacturer = $Computer.Manufacturer
$Model = $Computer.Model
Write-Output "Name: $Hostname"
Write-Output "Manufacturer: $Manufacturer"
Write-Output "Model: $Model"
Write-Output " "
}
따라서 위 예에서 가져온 정보는 이 컴퓨터가 AD의 일부이기 때문에 도메인 서비스를 통해 쉽게 이용할 수 있습니다. 그러나 모든 컴퓨터가 도메인에 속한 속성을 광고하지는 않습니다. 어떻게 가져올까요?
다음으로, 우리는 Invoke-Command를 사용합니다.따라서 이 PowerShell cmdlet은 원격 컴퓨터에서 로컬 명령을 실행합니다. 예를 들어, 특정 OU의 모든 컴퓨터에서 특정 명령을 실행해야 한다고 가정해 보겠습니다. 이 예에서는 모든 서버에 Invoke-Command를 사용하여 그룹 정책 업데이트 명령을 실행해 보겠습니다:
Get-ADComputer -SearchBase "OU=DC,DC=infrasos,DC=com" -Filter * |
%{ Invoke-Command -Computer $_.Name -ScriptBlock { gpupdate /force } }
또 읽기 활성 디렉터리 그룹 보고서 도구 시도
Get-ADComputer로 PowerShell AD 보고서 생성
Windows PowerShell에서 명령의 출력을 여러 보고서 형식으로 내보냅니다. 아래는 몇 가지 예시입니다.
우선, Get-ADComputer 명령의 결과를 텍스트 파일로 내보냅니다:
Get-ADComputer -Filter { OperatingSystem -Like '*Windows Server 2019*' } -Properties * |
Select Name, OperatingSystem |
Format-Table -AutoSize C:\Temp\2019_servers.txt
둘째, 모든 컴퓨터 목록을 가져와 쉼표로 구분된 값 (CSV) 파일로 내보냅니다:
Get-ADComputer -Filter * -Property * |
Select-Object Name,OperatingSystem |
Export-CSV All-Computers.csv -NoTypeInformation
셋째, 보고서를 내보내고 모든 컴퓨터와 필수 속성 목록이 포함된 HTML 웹페이지 형식을 얻을 수 있습니다:
Get-ADComputer -Filter * -Properties * |
Select-Object Name,OperatingSystem |
ConvertTo-Html |
Out-File C:\ps\ad_all_computers.html
이런 식으로 보여야 합니다:
PowerShell로 Active Directory 컴퓨터 보고서 만들기를 읽어 주셔서 감사합니다. 마무리하겠습니다.
또 읽기 Azure AD 모니터링 배포
PowerShell을 사용하여 Active Directory 컴퓨터 보고서 생성 결론
이 기사에서는 Get-ADComputer 명령에 대해 철저히 논의했습니다. 이 명령을 사용하여 특정 기기에 대한 자세한 속성 및 정보 목록을 얻을 수 있다는 것을 배웠습니다. 더 나아가, 철저한 목록으로부터 우리가 필요한 정보만 검색하기 위해 이러한 속성을 필터링하는 방법을 배웠습니다.
Source:
https://infrasos.com/create-active-directory-computer-reports-with-powershell/