PowerShell을 사용할 때는 데이터 세트를 처리해야 할 때가 있습니다. 우리는 많은 파일, 사용자 계정, 가상 머신 등과 작업합니다. 이러한 다양한 개체를 콘솔에 표시할 때, 원하는 대로 보기 위해 객체들은 한 줄씩 화면에서 아래로 스크롤됩니다. 하지만 이는 수정할 수 있습니다! PowerShell의 Group-Object
cmdlet을 사용하면 객체들을 그룹화할 수 있습니다. 이 cmdlet은 SQL GROUP BY 문과 유사하게 작동합니다.
PowerShell은 Powershell Group Object cmdlet을 통해 객체의 속성을 요약하는 방법이 있습니다. 이 cmdlet을 사용하면 한 번에 여러 객체 속성을 그룹으로 볼 수 있습니다.
동일한 유형의 객체를 생성해 보겠습니다. 이 객체들은 어떤 유형이든 될 수 있습니다. 그러나 이 데모에서는 System.ServiceProcess.ServiceController 객체를 사용하겠습니다. 이 객체는 Get-Service
cmdlet이 반환하는 것입니다.
예상대로 Group-Object가 작동하려면 동일한 유형의 객체들만 그룹화해야 합니다. 모든 객체가 동일한 속성을 가져야 합니다.
ManageEngine ADManager Plus를 사용하여 Active Directory, Exchange 및 Microsoft 365을 관리하고 보고하세요. 무료 평가판 다운로드!
매개 변수 없이 Group-Object
Get-Service
은 내 로컬 머신에 있는 모든 서비스를 반환합니다. 여기에는 많은 서비스가 있기 때문에 그들의 상태, 시작 유형 등에 대한 감을 얻을 수 없습니다. 먼저 이러한 서비스를 상태별로 그룹화하려고 합니다. 이를 위해 모든 서비스 객체를 PowerShell의 Group-Object
cmdlet으로 파이핑하고 Status
속성을 사용할 것입니다.
모든 서비스를 Powershell Group Object
로 파이핑하면 개수를 얻을 수 있습니다. 큰 문제는 아니지만 유용합니다.
단일 속성에 따라 객체를 그룹화
특정 속성 (이 경우 상태)으로 그룹화하려면 Group-Object
에게 특정 객체 속성을 그룹화하려는 것을 알려야 합니다. 이는 Group-Object
의 Property
매개변수를 사용하여 수행됩니다.
이제 얘기 중이야! 이제 멈춘 서비스와 실행 중인 서비스가 몇 개인지 확인할 수 있습니다. StartType
에 대해서도 똑같이 할 수 있습니다.
Group-Object 출력 필터링
아마도 나는 여기에 있는 하나 이상의 그룹에서 실제 서비스를 확인하고 싶을 것입니다. PowerShell 그룹 객체 명령에서 반환된 Group
속성을 확인하여 이러한 객체를 얻을 수 있습니다. Group
객체에는 해당 객체 속성 값으로 그룹화된 모든 서비스가 포함되어 있습니다. 서비스 상태를 그룹화하는 경우 중지된 서비스를 모두 얻으려면 Stopped
상태의 서비스를 필터링한 다음 Group
객체를 확장하여 해당 서비스를 모두 볼 수 있습니다.
여러 속성에 따라 객체를 그룹화
단일 속성에 대한 객체를 이렇게 그룹화할 수 있을 뿐만 아니라 여러 속성에 대해서도 그룹화할 수 있습니다. 아마도 상태와 시작 유형에 따라 모든 서비스를 보고 싶으실 것입니다. 이를 위해 Group-Object
의 Property
매개변수에 다른 속성 이름을 추가하기만 하면 됩니다.
추가 속성을 추가함으로써 별도의 “그리고” 시나리오를 만들고 필요한 만큼 많은 속성에 대해 그룹화할 수 있습니다!
ManageEngine ADManager Plus를 사용하여 Active Directory, Exchange 및 Microsoft 365를 관리하고 보고하세요. 무료 평가판 다운로드!
요약
Group-Object
cmdlet은 공통 속성을 기반으로 객체를 그룹화하는 데 도움을 주는 cmdlet입니다. 이와 같이 객체를 그룹화하는 것은 다양한 방법으로 유용합니다. Group-Object
cmdlet이 작동하는 방식에 대해 조금이라도 배우시면 PowerShell 스크립트를 개선하고 더 나은 스크립트를 작성하는 데 도움이 될 것이라고 기대합니다!
PowerShell을 시작한 지 얼마 안 되셨다면 PowerShell 도구 구축 미니 코스를 확인하는 것을 강력히 권장합니다!
Source:
https://adamtheautomator.com/powershell-group-object/