컴퓨터에 대한 정보 수집Collecting Information About Computers

CimCmdlets 모듈의 Cmdlet은 일반 시스템 관리 작업에서 가장 중요한 cmdlet입니다.Cmdlets from CimCmdlets module are the most important cmdlets for general system management tasks. 모든 중요한 하위 시스템 설정은 WMI를 통해 노출됩니다.All critical subsystem settings are exposed through WMI. 또한 WMI는 하나 이상의 항목 컬렉션에 있는 개체로 데이터를 처리합니다.Furthermore, WMI treats data as objects that are in collections of one or more items. Windows PowerShell은 개체에서도 작동하며 단일 또는 여러 개체를 동일한 방식으로 처리할 수 있게 해주는 파이프라인이 있기 때문에 일반적인 WMI 액세스를 통해 몇 가지 고급 작업을 매우 적은 노력으로 수행할 수 있습니다.Because Windows PowerShell also works with objects and has a pipeline that allows you to treat single or multiple objects in the same way, generic WMI access allows you to perform some advanced tasks with very little work.

다음 예제에서는 임의 컴퓨터에 대해 Get-CimInstance를 사용하여 특정 정보를 수집하는 방법을 보여줍니다.The following examples demonstrate how to collect specific information by using Get-CimInstance against an arbitrary computer. 로컬 컴퓨터를 나타내는 점 값(.)과 함께 ComputerName 매개 변수를 지정합니다.We specify the ComputerName parameter with the dot value (.), which represents the local computer. WMI를 통해 연결할 수 있는 컴퓨터와 연관된 이름 또는 IP 주소를 지정할 수 있습니다.You can specify a name or IP address associated with any computer you can reach through WMI. 로컬 컴퓨터에 대한 정보를 검색하려면 ComputerName 매개 변수를 생략할 수 있습니다.To retrieve information about the local computer, you could omit the ComputerName parameter.

데스크톱 설정 표시Listing Desktop Settings

먼저 로컬 컴퓨터에서 데스크톱 정보를 수집하는 명령을 실행하겠습니다.We'll begin with a command that collects information about the desktops on the local computer.

Get-CimInstance -ClassName Win32_Desktop -ComputerName .

이렇게 하면 사용 여부에 관계없이 모든 데스크톱에 대한 정보가 반환됩니다.This returns information for all desktops, whether they are in use or not.

참고

일부 WMI 클래스에서 반환되는 정보는 매우 자세할 수 있으며, WMI 클래스에 대한 메타데이터가 포함된 경우도 있습니다.Information returned by some WMI classes can be very detailed, and often include metadata about the WMI class. 이러한 메타데이터 속성에는 대부분 Cim으로 시작하는 이름이 있으므로 Select-Object를 사용하여 속성을 필터링할 수 있습니다.Because most of these metadata properties have names that begin with Cim, you can filter the properties using Select-Object. "Cim*"를 사용하여 값으로 -ExcludeProperty 매개 변수를 지정합니다.Specify the -ExcludeProperty parameter with "Cim*" as the value. 예:For example:

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

메타데이터를 필터링하려면 파이프라인 연산자(|)를 사용하여 Get-CimInstance 명령의 결과를 Select-Object -ExcludeProperty "CIM*"으로 보냅니다.To filter out the metadata, use a pipeline operator (|) to send the results of the Get-CimInstance command to Select-Object -ExcludeProperty "CIM*".

BIOS 정보 표시Listing BIOS Information

WMI Win32_BIOS 클래스는 로컬 컴퓨터의 시스템 BIOS에 대한 전체 정보를 비교적 간결하게 반환합니다.The WMI Win32_BIOS class returns fairly compact and complete information about the system BIOS on the local computer:

Get-CimInstance -ClassName Win32_BIOS -ComputerName .

프로세서 정보 표시Listing Processor Information

정보를 필터링하려는 경우가 많지만 WMI의 Win32_Processor 클래스를 사용하여 일반적인 프로세서 정보를 검색할 수 있습니다.You can retrieve general processor information by using WMI's Win32_Processor class, although you will likely want to filter the information:

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

프로세서 제품군에 대한 일반적인 설명 문자열을 위해 SystemType 속성을 반환할 수 있습니다.For a generic description string of the processor family, you can just return the SystemType property:

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

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

컴퓨터 제조업체 및 모델 표시Listing Computer Manufacturer and Model

Win32_ComputerSystem을 통해 컴퓨터 모델 정보를 확인할 수도 있습니다.Computer model information is also available from Win32_ComputerSystem. OEM 데이터를 제공하기 위해 표시되는 표준 출력을 필터링하지 않아도 됩니다.The standard displayed output will not need any filtering to provide OEM data:

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

일부 하드웨어의 정보를 직접 반환하는 이러한 명령의 출력 품질은 보유한 데이터에 따라 달라집니다.Your output from commands such as this, which return information directly from some hardware, is only as good as the data you have. 일부 정보는 하드웨어 제조업체에서 제대로 구성하지 않아 제공되지 않을 수도 있습니다.Some information is not correctly configured by hardware manufacturers and may therefore be unavailable.

설치된 핫픽스 표시Listing Installed Hotfixes

Win32_QuickFixEngineering을 사용하여 설치된 모든 핫픽스를 표시할 수 있습니다.You can list all installed hotfixes by using Win32_QuickFixEngineering:

Get-CimInstance -ClassName Win32_QuickFixEngineering -ComputerName .

이 클래스는 다음과 같은 핫픽스 목록을 반환합니다.This class returns a list of hotfixes that looks like this:

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

더 간결한 출력을 위해 일부 속성을 제외할 수도 있습니다.For more succinct output, you may want to exclude some properties. Get-CimInstanceProperty 매개 변수를 사용하여 HotFixID만 선택할 수도 있지만, 이렇게 하면 기본적으로 모든 메타데이터가 표시되기 때문에 실제로 자세한 정보가 반환됩니다.Although you can use the Get-CimInstance's Property parameter to choose only the HotFixID, doing so will actually return more information, because all the metadata is displayed by default:

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

Get-CimInstance의 Property 매개 변수는 Windows PowerShell로 반환되는 개체가 아니라 WMI 클래스 인스턴스에서 반환되는 속성을 제한하기 때문에 추가 데이터가 반환됩니다.The additional data is returned, because the Property parameter in Get-CimInstance restricts the properties returned from WMI class instances, not the object returned to Windows PowerShell. 출력을 줄이려면 Select-Object를 사용합니다.To reduce the output, use Select-Object:

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

운영 체제 버전 정보 표시Listing Operating System Version Information

Win32_OperatingSystem 클래스 속성에는 버전 및 서비스 팩 정보가 포함되어 있습니다.The Win32_OperatingSystem class properties include version and service pack information. 이러한 속성만 명시적으로 선택하여 Win32_OperatingSystem에서 버전 정보 요약을 가져올 수 있습니다.You can explicitly select only these properties to get a version information summary from Win32_OperatingSystem:

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

Select-ObjectProperty 매개 변수와 함께 와일드카드를 사용할 수도 있습니다.You can also use wildcards with the Select-Object's Property parameter. Build 또는 ServicePack으로 시작하는 모든 속성을 여기서 사용하는 것이 중요하기 때문에 다음과 같은 형태로 축약할 수 있습니다.Because all the properties beginning with either Build or ServicePack are important to use here, we can shorten this to the following form:

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

로컬 사용자 및 소유자 표시Listing Local Users and Owner

사용이 허가된 사용자 수, 현재 사용자 수, 소유자 이름 등의 로컬 일반 사용자 정보는 Win32_OperatingSystem 클래스의 속성을 선택하여 확인할 수 있습니다.Local general user information — number of licensed users, current number of users, and owner name — can be found with a selection of Win32_OperatingSystem class' properties. 다음과 같이 표시할 속성을 명시적으로 선택할 수 있습니다.You can explicitly select the properties to display like this:

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

와일드카드를 사용하는 더 간결한 버전은 다음과 같습니다.A more succinct version using wildcards is:

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

사용 가능한 디스크 공간 가져오기Getting Available Disk Space

로컬 드라이브의 디스크 공간 및 여유 공간을 보려면 Win32_LogicalDisk WMI 클래스를 사용하면 됩니다.To see the disk space and free space for local drives, you can use the Win32_LogicalDisk WMI class. DriveType이 3(WMI에서 고정 하드 디스크에 사용하는 값)인 인스턴스만 표시해야 합니다.You need to see only instances with a DriveType of 3 — the value WMI uses for fixed hard disks.

Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" -ComputerName .

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" -ComputerName . | Measure-Object -Property FreeSpace,Size -Sum | Select-Object -Property Property,Sum

Property           Sum
--------           ---
FreeSpace 109839607808
Size      326846914560

로그온 세션 정보 가져오기Getting Logon Session Information

Win32_LogonSession WMI 클래스를 통해 사용자와 관련된 로그온 세션에 대한 일반적인 정보를 가져올 수 있습니다.You can get general information about logon sessions associated with users through the Win32_LogonSession WMI class:

Get-CimInstance -ClassName Win32_LogonSession -ComputerName .

컴퓨터에 로그온한 사용자 가져오기Getting the User Logged on to a Computer

Win32_ComputerSystem을 사용하여 특정 컴퓨터 시스템에 로그온한 사용자를 표시할 수 있습니다.You can display the user logged on to a particular computer system using Win32_ComputerSystem. 이 명령은 시스템 데스크톱에 로그온한 사용자만 반환합니다.This command returns only the user logged on to the system desktop:

Get-CimInstance -ClassName Win32_ComputerSystem -Property UserName -ComputerName .

컴퓨터에서 로컬 시간 가져오기Getting Local Time from a Computer

Win32_LocalTime WMI 클래스를 사용하여 특정 컴퓨터에서 현재 로컬 시간을 검색할 수 있습니다.You can retrieve the current local time on a specific computer by using the Win32_LocalTime WMI class.

Get-CimInstance -ClassName Win32_LocalTime -ComputerName .

Day          : 15
DayOfWeek    : 4
Hour         : 12
Milliseconds :
Minute       : 11
Month        : 6
Quarter      : 2
Second       : 52
WeekInMonth  : 3
Year         : 2017
PSComputerName : .

서비스 상태 표시Displaying Service Status

특정 컴퓨터에서 모든 서비스의 상태를 보려면 앞에서 설명한 대로 Get-Service cmdlet을 로컬에서 사용할 수 있습니다.To view the status of all services on a specific computer, you can locally use the Get-Service cmdlet. 원격 시스템의 경우 Win32_Service WMI 클래스를 사용할 수 있습니다.For remote systems, you can use the Win32_Service WMI class. 또한 Select-Object를 사용하여 결과를 Status, NameDisplayName으로 필터링하는 경우 출력 형식이 Get-Service의 출력 형식과 거의 동일합니다.If you also use Select-Object to filter the results to Status, Name, and DisplayName, the output format will be almost identical to that from Get-Service:

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

이름이 매우 긴, 가끔 발생하는 서비스의 이름을 전체 표시하려면 AutoSizeWrap 매개 변수와 함께 Format-Table을 사용하여 열 너비를 최적화하고 긴 이름이 잘리는 대신 줄 바꿈되도록 할 수 있습니다.To allow the complete display of names for the occasional services with extremely long names, you may want to use Format-Table with the AutoSize and Wrap parameters, to optimize column width and allow long names to wrap instead of being truncated:

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