다음을 통해 공유


자녀 보호 설정 API 사용

로깅은 사용자의 설정에 조건부이므로 로깅에 앞서 설정에 대해 설명합니다.

WMI API 설정 쓰기/읽기

WMI API는 Wpcsprov.mof 스키마 파일에 정의된 대로 자녀 보호 인프라에서 인스턴스화된 모든 설정에 대해 추상화되지 않은(원시) 액세스를 제공합니다. 설정 저장소는 \root\CIMV2\Applications\WindowsParentalControls 네임스페이스에 있으며 스키마를 정의하는 다음 클래스 정의가 있습니다. 확장성 요소가 기록됩니다.

컴퓨터당:

  • WpcSystemSettings(instance 하나)
    • AddUser() 및 RemoveUser() 메서드는 각각 지정된 SID에 대한 자녀 보호 설정을 만들고 삭제합니다.
    • 현재 게임 등급 시스템에 대한 속성 및 로그의 관리자 확인과 관련된 추적 및 알림.
    • 확장성: 웹 콘텐츠 필터링에 대한 읽기 전용 및 읽기/쓰기 HTTP 애플리케이션 및 URL 예외 목록의 속성, 웹 콘텐츠 필터 재정의 ID 및 이름 리소스 DLL 경로 및 ID, 필드 및 헤더 이름 등록의 사용자 지정 로그 이벤트 번호입니다.
  • WpcRatingsSystem(설치된 각 등급 시스템당 하나의 instance)
    • WpcRating(등급 수준당 instance 하나).
    • WpcRatingDescriptor(등급 설명자당 instance 하나).
  • 확장성: WpcExtension(추가된 각 자녀 보호 패널 확장성 링크당 하나의 instance).
    • GUID, 하위 시스템, ID, 이미지 리소스 경로, 비활성화된 상태 이미지 리소스 경로, 실행 경로, 표시 이름 리소스 DLL 경로 및 ID, 자막 리소스 DLL 경로 및 ID에 대한 속성입니다.

제어되는 사용자별:

  • WpcUserSettings(제어된 사용자당 instance 하나)

    • SID 소유 속성, 보호자 통제 켜기/끄기 플래그, 로그온/끄기 플래그, 시간 제한 켜기/끄기 플래그, 사용 플래그 재정의, 로그온 시간 마스크 및 일반 응용 프로그램 제한 켜기/끄기 플래그.

    • Windows 8 기존 속성은 각 시간에 대한 처음 반시간을 나타냅니다. 각 시간의 후반을 나타내는 새 반 시간 속성이 추가되었습니다. 일일 시간 수당을 나타내는 추가 새 속성이 도입되었습니다.

      Windows 7 및 Windows Vista: 타이머 제한은 1시간 세분성을 지원합니다.

  • WpcWebSettings(제어된 사용자당 instance 하나)

    • SID 소유 속성, 필터 켜기/끄기 플래그, 필터 수준, 파일 다운로드 차단 플래그, 등급이 지정되지 않은 사이트 차단 플래그.
  • WpcUrlOverride(웹 콘텐츠 필터링에 대한 허용/차단 목록으로 사용되는 URL 재정의 목록에서 명시적으로 허용되거나 거부된 URL당 하나의 instance)

    • SID를 소유하기 위한 속성, 영향을 받는 URL, 허용됨/차단된 상태.
  • WpcAppOverride(일반 애플리케이션 제한 애플리케이션 재정의 목록에서 명시적으로 허용된 경로당 instance 하나)

    • SID를 소유하기 위한 속성입니다. SAFER 규칙 ID, 애플리케이션 경로입니다.
  • WpcGamesSettings(제어된 사용자당 instance 하나)

    • SID 소유 속성, 게임 허용 플래그, 이러한 설정에 대한 등급 시스템의 GUID, 등급이 지정되지 않은 게임 플래그 허용, 현재 시스템에서 허용되는 최대 등급 ID, 거부된 설명자 컬렉션입니다.
  • WpcGameOverride(명시적으로 허용되거나 거부된 애플리케이션 ID당 하나의 instance)

    • SID를 소유하기 위한 속성, 게임을 식별하는 애플리케이션 ID, 허용됨/거부됨 상태.

데이터 표현 참고 사항

스키마 내의 몇 가지 설정은 특성 non_null .mof 파일에 의해 제한됩니다. null 변형으로 설정할 수 없습니다. 배열이 아닌 모든 형식의 경우 자녀 보호 코드는 값을 초기화합니다. 배열의 경우 null 변형, 빈 변형 또는 크기가 0인 변형 배열을 사용하여 빈 상태를 작성할 수 있습니다. WMI 공급자는 이 모든 것을 읽기 시 null 변형 상태 표현으로 정규화합니다.

WMI를 사용하여 UI 확장성 링크를 등록하려면 다음 정보를 지정해야 합니다.

  • GUID - 여러 링크가 공통 패키지 또는 제품군의 일부인 경우 동일한 GUID를 공유할 수 있습니다.
  • 하위 시스템 - 제품군 또는 독립 실행형 규격 애플리케이션과 같은 링크 형식의 분류를 나타내기 위한 것입니다.
  • 이름 리소스 DLL 경로 및 ID - 링크에 표시할 표시 이름의 리소스를 지정합니다.
  • 자막 리소스 DLL 경로 및 ID - 이름 아래의 추가 텍스트에 대한 리소스를 지정합니다.
  • 이미지 경로 - 픽셀당 8비트 색 깊이와 알파 채널이 있는 24개 × 24픽셀 비트맵(BMP)의 전체 경로입니다. 이는 파일 시스템 경로>,< 음수 리소스 ID\1>과 <같은 셸 확장과 일치하는 방식으로 지정됩니다. 예: C:\Windows\System32\Wpccpl.dll,-20.
  • 비활성화된 이미지 경로 - 비활성 상태를 표시하는 비트맵의 변형을 제외하고 위의 이미지 경로와 동일합니다. 이 이미지는 보호자 통제가 해제된 경우에 표시됩니다.
  • Exe 경로 - ShellExecute()를 사용하여 호출할 실행 파일의 전체 경로입니다. 이 경로는 백슬래시로 지정해야 합니다. 그렇지 않으면 링크에서 실행 파일을 호출하지 않습니다. exe 경로 다음에 %SID% 토큰을 추가하면 링크 실행이 허브 페이지를 현재 보고 있는 사용자의 SID 문자열로 대체됩니다. 그런 다음 실행 파일은 SID 문자열을 사용하여 지정된 사용자의 기능을 관리할 수 있습니다.

애플리케이션 제거는 확장성 링크 등록을 제거해야 합니다.

FilterID 속성을 기존 등록된 UI 확장성 링크와 동일한 GUID로 설정하면 표시되는 링크가 다른 설정의 일반 링크에서 전용 웹 제한 링크로 승격됩니다. 이는 컴퓨터 전체 설정이므로 기본 제공 웹 콘텐츠 필터 LSP가 제어되는 모든 사용자에 대한 모든 필터링을 우회합니다. 설명이 포함된 이름은 Resource DLL 및 ID에 대한 경로로 지정되는 FilterName 속성에도 설정해야 합니다.

자녀 보호 시스템은 재정의되는 웹 필터에서 다음을 권장합니다.

  • 사용자의 전반적인 자녀 보호 켜기/끄기 상태를 적용합니다.
  • 사용자의 활동 보고 설정을 적용합니다.
  • FilterID 속성을 모니터링합니다. 공급업체의 지정된 GUID에서 변경된 경우 다른 필터가 소유권을 가져와 공급업체의 필터 자체를 사용하지 않도록 설정해야 합니다. 이 변경 내용과 WMI 호출에 대해 주기적으로 검사하는 오버헤드를 줄이기 위해 COM 인터페이스가 추가되었습니다.
  • 읽기 전용 및 읽기/쓰기 HTTP 애플리케이션 및 URL 예외 목록 항목을 모두 적용하는 것이 좋습니다.
  • 사용자별 URL 재정의 목록(허용/차단 목록)을 적용하는 것이 좋습니다.
  • 빠른 사용자 전환에 강력합니다.

자녀 보호는 웹 또는 기타 콘텐츠 필터가 필터링을 구현하기 위해 Windows에 연결하는 방법에 제한을 두지 않습니다. 공급업체는 현재 투자 또는 선호 기술(LSP, TDI, 기타)을 활용할 수 있습니다.

공급업체의 필터를 제거하려면 FilterID 및 FilterName 항목의 등록을 취소해야 합니다. 이 작업은 FilterID를 GUID_NULL, FilterName을 변형 null로 설정하여 수행됩니다. 그러면 기본 제공 웹 콘텐츠 필터가 다시 사용하도록 설정됩니다.

기본 제공 웹 필터를 다시 사용하도록 설정하면 새 세션만 필터링되고 전환 전의 활성 세션은 필터링되지 않습니다.

웹 콘텐츠 필터 허용/차단 목록 내보내기/가져오기 형식

이 기능은 Windows 8 지원되지 않습니다.

Windows 7 및 Windows Vista: 이 기능은 지원됩니다.

<WebAddresses>

<URL AllowBlock="1">https://alloweddomain.com/</URL>

<URL AllowBlock="1">https://allowedurl.com/allowed/default.html</URL>

<URL AllowBlock="2">https://blockeddomain.com/</URL>

<URL AllowBlock="2">https://blockedurl.com/blocked/default.html</URL>

</WebAddresses>

애플리케이션 제한 사항 재정의 참고 사항

애플리케이션 제한 재정의는 특정 이진 파일 또는 경로를 허용하도록 사용자별로 설정됩니다. 부모로 제어되는 새 사용자가 구성되고 해당 사용자에 대해 애플리케이션 제한 재정의가 필요한 경우 레지스트리의 Windows 실행 키를 재정의를 작성하기 위해 배포된 권한 상승이 필요한 것으로 표시된 작은 애플리케이션과 함께 사용하는 것이 좋습니다. 이로 인해 사용자에 대한 재정의를 구성하기 위한 일회성 자격 증명 프롬프트가 생성되며, 그 후에는 재정의에 대한 대상 이진 파일이 추가 관리자 재정의 프롬프트로 인해 사용자에게 방해가 되지 않습니다.

설정 변경 내용이 적용되기 위해 필요한 작업

관리자가 로그인한 표준 사용자에 대한 설정을 변경하면 경고 메시지가 생성됩니다. 제어된 사용자가 로그아웃하고 다시 로그인할 때까지 설정 변경 내용이 적용되지 않을 수 있음을 명시합니다. 이것은 보수적인 디자인입니다. 대부분의 설정은 제어된 사용자가 로그인하는 동안 거의 즉시 적용됩니다. 한 가지 예외는 게임입니다. 여기서 설정은 다음에 게임 Explorer 실행되거나 게임을 호출할 때 적용됩니다.

예제 코드

C++ 샘플은 설정 확장성 기능을 사용하는 것을 보여주는 SDK에 제공됩니다. 자녀 보호 샘플 섹션을 참조하세요.

독립 테스트 도구

클래스 및 인스턴스 검사는 Wmimgmt.msc 플러그 인 및 Wbemtest.exe 도구를 통해 수행됩니다.

64비트 고려 사항

64비트 Windows 운영 체제 버전에는 현재 32비트 WMI 공급자와 64비트 공급자가 모두 설치되어 있습니다.

일반 코드 개발 및 디버깅

Visual Studio를 설정 관리 코드 개발에 사용하는 경우 로컬 디버깅을 사용하려면 관리자 권한으로 Visual Studio를 실행해야 합니다(명령줄 또는 마우스 오른쪽 단추 클릭 옵션을 사용하여 관리자 권한으로 호출). 이는 UAC에서 구현한 프로세스 및 메시지 격리 때문입니다.

최소 준수 API 설정 읽기

인터페이스 및 메서드

헤더 파일 Wpcapi.h로 제어되는 준수 API는 COM 인터페이스를 사용하여 다음 설정에 대한 간소화된 읽기 전용 액세스를 제공합니다.

IWindowsParentalControls 루트 인터페이스 메서드는 다음 액세스 권한을 제공합니다.

  • IWPCSettings 메서드:
    • IsLoggingRequired()- 사용자에 대해 활동 보고가 켜짐으로 구성되어 있나요?
    • GetLastSettingsChangeTime()- 이전 검사 이후 설정 정책이 변경되었는지 애플리케이션에서 알 수 있습니다.
    • GetRestrictions()- 웹 제한, 시간 제한, 게임 제한 또는 응용 프로그램 제한이 켜기로 설정되어 있는지 여부를 읽습니다.
  • IWPCWebSettings 메서드:
    • GetSettings()– 필터 켜기 또는 끄기 플래그를 검색하고 다운로드가 차단됩니다.
    • RequestURLOverride()- 승인할 URL이 포함된 대화 상자를 표시하는 관리자 재정의(오버더숄더 승인) 메커니즘에 요청을 입력합니다.
  • IWPCGamesSettings 메서드:
    • IsBlocked()- 지정된 게임 응용 프로그램 ID의 경우 는 자녀 보호 및 어떤 이유로 차단된 게임입니다.
  • GetVisibility()- 자녀 보호 UI가 현재 숨겨져 있는지 여부에 대한 정보를 제공합니다.
  • GetWebFilterInfo()- 현재 활성 웹 콘텐츠 필터의 ID를 가져오기 위한 인터페이스를 제공합니다.

예제 코드

C++ 샘플은 준수 API의 사용을 보여 주는 SDK에 제공됩니다. 자녀 보호 샘플 섹션을 참조하세요.