WMI 속성 추가

WMI 클래스의 속성은 관리되는 개체에 대한 데이터를 설명합니다. 예를 들어 Handle, ProcessIdPageFaultsWin32_Process 클래스의 속성으로 정의되며 운영 체제 프로세스의 측면을 설명합니다. 자세한 내용은 속성 공급자 작성을 참조하세요.

MOF에서 속성 정의

WMI 속성은 개체의 측면 또는 상태를 나타냅니다. 단순히 값을 가져오고 설정하는 메서드를 만드는 대신, 속성을 만들 수 있습니다. 예를 들어 Win32_NetworkAdapterNetEnabled 속성은 어댑터의 상태가 활성화되었는지 비활성화되었는지 표시합니다. 그러나 활성화비활성화 메서드는 실제로 어댑터 상태를 변경하는 작업을 수행합니다.

속성에는 데이터 형식이 있어야 합니다. Win32_Process 속성 Handle의 데이터 형식은 문자열이고 PageFaults의 데이터 형식은 uint32입니다. 속성이 두 가지 상태만 가질 수 있는 경우 속성의 데이터 형식은 일반적으로 부울로 설정됩니다.

속성은 배열일 수도 있습니다. 예를 들어 Win32_Trustee의 보안 식별자(SID) 속성은 SID를 포함하는 바이트 배열(uint8)입니다. 속성은 다른 WMI 클래스의 하나 이상의 인스턴스에 대한 참조인 포함 개체를 포함할 수 있습니다. 예를 들어 Win32_SecurityDescriptor의 임의 액세스 제어 목록(DACL) 및 시스템 액세스 제어 목록(SACL) 속성은 액세스 권한이 있는 그룹 및 계정을 설명하는 Win32_ACE 개체입니다. Win32_SecurityDescriptorGroup 속성에는 Win32_Trustee의 단일 인스턴스에 대한 참조가 포함되어 있습니다. 자세한 내용은 클래스에 개체 포함을 참조하세요.

속성에는 여러 한정자가 있을 수 있습니다. 이러한 한정자CIM(Common Information Model) 또는 WMI 한정자이거나 성능 카운터 클래스 한정자와 같은 특정 유형의 클래스에 고유할 수 있습니다. 한정자는 읽기 전용 여부 또는 특정 권한 없이 변경 불가능 여부 같은 속성의 일부 측면을 지정합니다. 예를 들어 Win32_SecurityDescriptorDACL 속성에 쓰기를 시도하는 애플리케이션에는 SeSecurityPrivilegeSeRestorePrivilege 권한이 필요합니다. 자세한 내용은 한정자 추가를 참조하세요.

마지막으로 속성에는 이름이 있어야 합니다. 표준 프로그래밍 관행 범위 내 무엇에든 속성 이름을 지정할 수 있습니다. 그러나 두 가지 주요 예외가 있습니다. 첫째, 속성 이름으로 "클래스" 같은 MOF 키워드를 사용할 수 없습니다. 둘째, 속성 이름으로 "그룹" 같은 WQL 키워드를 사용할 수 없습니다. MOF 및 WQL 키워드에 대한 자세한 내용은 MOF 데이터 형식WQL(WMI용 SQL)을 참조하세요.

C++ 및 MOF(Managed Object Format) 코드의 경우 클래스를 선언하는 동시에 클래스의 속성을 선언합니다.

속성을 정의하려면

  • 클래스 설명의 중괄호 사이에 속성 데이터 형식, 이름, 선택적 기본값 및 한정자를 포함합니다.

    class MyClass 
    {
        [key] string   strProp;
        sint32         dwProp1 = 21;
        uint32         dwProp2;
    };
    

    앞의 예제에서 MyClass 클래스에는 문자열, 32비트 부호 있는 정수 및 32비트 부호 없는 정수라는 세 가지 속성이 있습니다. 각 속성에는 대소문자를 구분하지 않는 이름과 MOF 데이터 형식이 할당됩니다.

    Key 한정자는 문자열 속성을 클래스의 인스턴스를 고유하게 식별하는 키 속성으로 정의합니다. 한정자에 대한 자세한 내용은 한정자 추가를 참조하세요.

클래스 만들기