Share via


컴퓨터에 대한 정보 수집

이 샘플은 Windows 플랫폼에만 적용됩니다.

CimCmdlets 모듈의 Cmdlet은 일반 시스템 관리 작업에 가장 중요한 cmdlet입니다. 모든 중요한 하위 시스템 설정은 WMI를 통해 노출됩니다. 또한 WMI는 데이터를 하나 이상의 항목 컬렉션에 있는 개체로 처리합니다. PowerShell은 개체에서도 작동하며 단일 또는 여러 개체를 동일한 방식으로 처리할 수 있게 해주는 파이프라인이 있기 때문에 일반적인 WMI 액세스를 통해 몇 가지 고급 작업을 매우 적은 노력으로 수행할 수 있습니다.

데스크톱 설정 나열

먼저 로컬 컴퓨터의 데스크톱에 대한 정보를 수집하는 명령으로 시작합니다.

Get-CimInstance -ClassName Win32_Desktop

이렇게 하면 사용 여부에 관계없이 모든 데스크톱에 대한 정보가 반환됩니다.

참고 항목

일부 WMI 클래스에서 반환되는 정보는 매우 자세할 수 있으며, WMI 클래스에 대한 메타데이터가 포함된 경우도 있습니다.

이러한 메타데이터 속성에는 대부분 Cim으로 시작하는 이름이 있으므로 Select-Object를 사용하여 속성을 필터링할 수 있습니다. "Cim*"를 사용하여 값으로 -ExcludeProperty 매개 변수를 지정합니다. 예시:

Get-CimInstance -ClassName Win32_Desktop | Select-Object -ExcludeProperty "CIM*"

메타데이터를 필터링하려면 파이프라인 연산자(|)를 사용하여 Get-CimInstance 명령의 결과를 Select-Object -ExcludeProperty "CIM*"으로 보냅니다.

BIOS 정보 나열

WMI Win32_BIOS 클래스는 로컬 컴퓨터의 시스템 BIOS에 대한 매우 간결하고 완전한 정보를 반환합니다.

Get-CimInstance -ClassName Win32_BIOS

프로세서 정보 나열

정보를 필터링하려고 하지만 WMI의 Win32_Processor 클래스를 사용하여 일반 프로세서 정보를 검색할 수 있습니다.

Get-CimInstance -ClassName Win32_Processor | Select-Object -ExcludeProperty "CIM*"

프로세서 패밀리의 일반 설명 문자열의 경우 SystemType 속성만 반환하면 됩니다.

Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -Property SystemType

SystemType
----------
X86-based PC

컴퓨터 제조업체 및 모델 나열

컴퓨터 모델 정보는 Win32_ComputerSystem 사용할 수도 있습니다. 표시된 표준 출력은 OEM 데이터를 제공하기 위해 필터링이 필요하지 않습니다.

Get-CimInstance -ClassName Win32_ComputerSystem
Name PrimaryOwnerName Domain    TotalPhysicalMemory Model                   Manufacturer
---- ---------------- ------    ------------------- -----                   ------------
MyPC Jane Doe         WORKGROUP 804765696           DA243A-ABA 6415cl NA910 Compaq Presario 06

일부 하드웨어에서 직접 정보를 반환하는 이와 같은 명령의 출력은 가지고 있는 데이터만큼만 좋습니다. 일부 정보는 하드웨어 제조업체에서 제대로 구성하지 않아 제공되지 않을 수도 있습니다.

설치된 핫픽스 나열

Win32_QuickFixEngineering을 사용하여 설치된 모든 핫픽스를 표시할 수 있습니다.

Get-CimInstance -ClassName Win32_QuickFixEngineering

이 클래스는 다음과 같은 핫픽스 목록을 반환합니다.

Source Description     HotFixID  InstalledBy   InstalledOn PSComputerName
------ -----------     --------  -----------   ----------- --------------
       Security Update KB4048951 Administrator 12/16/2017  .

더 간결한 출력을 위해 일부 속성을 제외할 수도 있습니다. 's 속성 매개 변수를 사용하여 Get-CimInstanceHotFixID선택할 수 있지만 이렇게 하면 모든 메타데이터가 기본적으로 표시되므로 실제로 더 많은 정보가 반환됩니다.

Get-CimInstance -ClassName Win32_QuickFixEngineering -Property HotFixID
InstalledOn           :
Caption               :
Description           :
InstallDate           :
Name                  :
Status                :
CSName                :
FixComments           :
HotFixID              : KB4533002
InstalledBy           :
ServicePackInEffect   :
PSComputerName        :
CimClass              : root/cimv2:Win32_QuickFixEngineering
CimInstanceProperties : {Caption, Description, InstallDate, Name…}
CimSystemProperties   : Microsoft.Management.Infrastructure.CimSystemProperties
...

속성 매개 변수는 PowerShell에 Get-CimInstance 반환된 개체가 아니라 WMI 클래스 인스턴스에서 반환된 속성을 제한하기 때문에 추가 데이터가 반환됩니다. 출력을 줄이려면 다음을 사용합니다 Select-Object.

Get-CimInstance -ClassName Win32_QuickFixEngineering -Property HotFixId |
    Select-Object -Property HotFixId
HotFixId
--------
KB4048951

운영 체제 버전 정보 나열

Win32_OperatingSystem 클래스 속성에는 버전 및 서비스 팩 정보가 포함되어 있습니다. 이러한 속성만 명시적으로 선택하여 Win32_OperatingSystem 버전 정보 요약을 가져올 수 있습니다.

Get-CimInstance -ClassName Win32_OperatingSystem |
  Select-Object -Property BuildNumber,BuildType,OSType,ServicePackMajorVersion,ServicePackMinorVersion

Property 매개 변수와 함께 와일드카드를 사용할 수도 있습니다. Build 또는 ServicePack으로 시작하는 모든 속성은 여기에서 사용하는 것이 중요하므로 다음 형식으로 단축할 수 있습니다.

Get-CimInstance -ClassName Win32_OperatingSystem |
    Select-Object -Property Build*,OSType,ServicePack*
BuildNumber             : 18362
BuildType               : Multiprocessor Free
OSType                  : 18
ServicePackMajorVersion : 0
ServicePackMinorVersion : 0

로컬 사용자 및 소유자 나열

로컬 사용자에 대한 일반 정보는 Win32_OperatingSystem 클래스 속성을 선택하여 찾을 수 있습니다. 다음과 같이 표시할 속성을 명시적으로 선택할 수 있습니다.

Get-CimInstance -ClassName Win32_OperatingSystem |
    Select-Object -Property NumberOfLicensedUsers, NumberOfUsers, RegisteredUser

wild카드s를 사용하는 보다 간결한 버전은 다음과 같습니다.

Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object -Property *user*

사용 가능한 디스크 공간 가져오기

로컬 드라이브의 디스크 공간 및 여유 공간을 보려면 Win32_LogicalDisk 클래스를 사용할 수 있습니다. WMI가 고정 하드 디스크에 사용하는 값인 DriveType이 3인 인스턴스만 표시해야 합니다.

Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3"
DeviceID DriveType ProviderName VolumeName Size         FreeSpace   PSComputerName
-------- --------- ------------ ---------- ----         ---------   --------------
C:       3                      Local Disk 203912880128 65541357568 .
Q:       3                      New Volume 122934034432 44298250240 .
Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" |
    Measure-Object -Property FreeSpace,Size -Sum |
    Select-Object -Property Property,Sum
Property           Sum
--------           ---
FreeSpace 109839607808
Size      326846914560

로그온 세션 정보 가져오기

Win32_LogonSession WMI 클래스를 통해 사용자와 연결된 로그온 세션에 대한 일반적인 정보를 얻을 수 있습니다.

Get-CimInstance -ClassName Win32_LogonSession

컴퓨터에 로그온한 사용자 가져오기

Win32_ComputerSystem을 사용하여 특정 컴퓨터 시스템에 로그온한 사용자를 표시할 수 있습니다. 이 명령은 시스템 데스크톱에 로그온한 사용자만 반환합니다.

Get-CimInstance -ClassName Win32_ComputerSystem -Property UserName

컴퓨터에서 로컬 시간 가져오기

Win32_LocalTime WMI 클래스를 사용하여 특정 컴퓨터에서 현재 로컬 시간을 검색할 수 있습니다.

Get-CimInstance -ClassName Win32_LocalTime
Day            : 23
DayOfWeek      : 1
Hour           : 8
Milliseconds   :
Minute         : 52
Month          : 12
Quarter        : 4
Second         : 55
WeekInMonth    : 4
Year           : 2019
PSComputerName :

서비스 상태 표시

특정 컴퓨터에서 모든 서비스의 상태를 보려면 앞에서 설명한 대로 Get-Service cmdlet을 로컬에서 사용할 수 있습니다. 원격 시스템의 경우 Win32_Service WMI 클래스를 사용할 수 있습니다. 또한 Select-Object를 사용하여 결과를 Status, Name, DisplayName으로 필터링하는 경우 출력 형식이 Get-Service의 출력 형식과 거의 동일합니다.

Get-CimInstance -ClassName Win32_Service |
    Select-Object -Property Status,Name,DisplayName

긴 이름의 서비스 이름을 완전히 표시하려면 Format-TableAutoSizeWrap 매개 변수를 사용합니다. 이러한 매개 변수는 열 너비를 최적화하여 긴 이름을 자르는 대신 래핑할 수 있도록 합니다.

Get-CimInstance -ClassName Win32_Service |
    Format-Table -Property Status, Name, DisplayName -AutoSize -Wrap