처음에는 인식하지 못할 수도 있겠지만 Windows PowerShell에서 작업하는 동안에는 .NET Framework 개체를 사용하고 있는 것입니다. 경험이 점점 쌓이면서 이러한 개체 처리 능력이 드러나며 개체를 사용하고 개체를 중심으로 사고하는 자신을 발견하게 될 것입니다.

일반적으로 .NET Framework 개체는 데이터 및 해당 데이터와 연결된 연산으로 구성되어 있는 .NET Framework 클래스의 인스턴스입니다. 그러나 속성(특성) 및 메서드(개체에서 수행할 수 있는 작업)를 가진 데이터 엔터티로 생각할 수 있습니다.

예를 들어 Windows PowerShell에서 서비스를 가져올 때 실제로는 서비스를 나타내는 개체를 가져오는 것입니다. 서비스에 대한 정보를 볼 때는 해당 서비스 개체의 속성을 보는 것입니다. 또한 서비스를 시작하는 경우, 즉 서비스의 Status 속성을 "started"로 변경하는 경우에는 서비스 개체의 메서드를 사용하는 중입니다.

같은 유형의 모든 개체는 속성 및 메서드가 같지만 각 개체의 인스턴스는 다른 속성 값을 가질 수 있습니다. 예를 들어 모든 서비스 개체에는 Name 및 Status 속성이 있습니다. 그러나 이름과 상태는 서비스마다 다를 수 있습니다.

준비를 마쳤다면 이제 개체에 대해 알아 보겠습니다. cmdlet이 가져오는 개체 유형을 확인하려면 파이프라인 연산자(|)를 사용하여 "get" 명령의 결과를 Get-Member 명령으로 보내면 됩니다. 예를 들어 다음 명령은 Get-Service 명령에 의해 검색된 개체를 Get-Member로 보냅니다.

get-service | get-member 

Get-Member는 개체의 유형 이름과 해당 속성 및 메서드 목록을 포함하여 서비스 개체에 대한 정보를 표시합니다.

   TypeName: System.ServiceProcess.ServiceController

Name                      MemberType    Definition
----                      ----------    ----------
Name                      AliasProperty Name = ServiceName
add_Disposed              Method        System.Void add_Disposed(EventHandler value)
Close                     Method        System.Void Close()
Continue                  Method        System.Void Continue()
...

개체 클래스에 대한 정보를 보려면 System.ServiceProcess.ServiceController와 같은 유형 이름을 MSDN에 복사하여 붙여 넣습니다. 클래스를 찾으면 MSDN 하위 항목을 읽고 Windows PowerShell의 개체 속성 및 메서드와 같이 해당 클래스를 기반으로 하는 개체의 속성 및 메서드에 대해 확인할 수 있습니다.

특정 개체의 모든 속성 값을 알아보려면 파이프라인 연산자(|)를 사용하여 "get" 명령의 결과를 Format-List 또는 Format-Table 명령으로 보냅니다. 이 경우 format cmdlet의 Property 매개 변수에 모두를 나타내는 값인 별표(*)를 사용합니다. 예를 들어 시스템의 Schedule 서비스에 대한 모든 속성을 찾으려면 다음과 같이 입력합니다.

get-service schedule | format-list -property *

다음은 결과를 보여 주는 예입니다.

Name                : Schedule
CanPauseAndContinue : True
CanShutdown         : True
CanStop             : True
DisplayName         : Task Scheduler
DependentServices   : {}
MachineName         : .
ServiceName         : Schedule
ServicesDependedOn  : {RpcSs}
ServiceHandle       : SafeServiceHandle
Status              : Running
ServiceType         : Win32ShareProcess
Site                :
Container           :

Windows PowerShell을 처음 배우는 경우 개체를 이해하지 못하더라도 개념은 잘 기억해야 합니다. 개체 사용 방법은 금방 배울 수 있습니다.




목차