Uso de las API de configuración de los controles parentales
La configuración se describe antes del registro porque el registro está condicional en la configuración del usuario.
Escritura y lectura de la configuración de la API de WMI
La API de WMI proporciona acceso no abstracto (sin procesar) a todas las configuraciones que crea la infraestructura de controles parentales, tal como se define en el archivo de esquema Wpcsprov.mof. El almacén de configuración existe en el espacio de nombres \root\CIMV2\Applications\WindowsParentalControls, con las siguientes definiciones de clase que definen un esquema. Se indican los elementos de extensibilidad.
Por equipo:
- WpcSystemSettings (una instancia)
- Métodos AddUser() y RemoveUser() para crear y eliminar la configuración de controles parentales para un SID determinado, respectivamente.
- Propiedades del sistema de clasificaciones de juegos actuales en vigor y seguimiento y notificación relacionados con la comprobación de los registros por parte del administrador.
- Extensibilidad: propiedades para listas de exención de direcciones URL y aplicación HTTP de solo lectura y escritura para el filtrado de contenido web, id. de invalidación del filtro de contenido web y nombre de la ruta de acceso y el identificador de dll del recurso de nombre, y el número de eventos de registro personalizado de campos y registro de nombres de encabezado.
- WpcRatingsSystem (una instancia por cada sistema de clasificación instalada)
- WpcRating (una instancia por nivel de clasificación).
- WpcRatingDescriptor (una instancia por descriptor de clasificación).
- Extensibilidad: WpcExtension (una instancia por cada vínculo de extensibilidad del Panel de controles parentales agregada).
- Propiedades para GUID, subsistema, identificador, ruta de acceso del recurso de imagen de imagen, ruta de acceso de recurso de imagen de estado deshabilitada, ruta de acceso ejecutable, ruta de acceso del archivo DLL del recurso de nombre para mostrar e identificador, ruta de acceso del archivo DLL del recurso de subtítulos e identificador.
Usuario controlado por:
WpcUserSettings (una instancia por usuario controlado)
Propiedades para propietarios de SID, controles parentales activados o desactivados, marca de inicio o apagado, límites de tiempo activado/desactivado, invalida la marca habilitada, máscara de horas de inicio de sesión y Restricciones generales de aplicación activadas o desactivadas.
En Windows 8 la propiedad existente representa la primera media hora para cada hora. Se ha agregado una nueva propiedad media hora para representar la segunda mitad de cada hora. Se introdujo una nueva propiedad adicional para representar la asignación diaria de horas.
Windows 7 y Windows Vista: Las restricciones del temporizador admiten la granularidad de 1 hora.
WpcWebSettings (una instancia por usuario controlado)
- Propiedades para el SID propietario, filtrar la marca de encendido y apagado, el nivel de filtro, la marca de bloqueo de descargas de archivos, la marca de bloqueo de sitios no clasificados.
WpcUrlOverride (una instancia por dirección URL permitida o denegada explícitamente en la lista de invalidaciones de direcciones URL usada como lista de permitidos o bloqueados para el filtrado de contenido web)
- Propiedades para el SID propietario, dirección URL afectada, estado permitido o bloqueado.
WpcAppOverride (una instancia por ruta de acceso permitida explícitamente en la lista de invalidaciones de aplicaciones de restricciones generales de aplicaciones)
- Propiedades para el SID propietario. Identificador de regla MÁS SEGURO, ruta de acceso a la aplicación.
WpcGamesSettings (una instancia por usuario controlado)
- Propiedades para el SID propietario, la marca de juegos permitidas, el GUID del sistema de clasificaciones para esta configuración, permitir la marca de juegos no clasificados, el identificador de la clasificación máxima permitida en el sistema actual, la colección de descriptores denegados.
WpcGameOverride (una instancia por identificador de aplicación permitida o denegada explícitamente)
- Propiedades para el SID propietario, identificador de aplicación que identifica el juego, estado permitido o denegado.
Notas de representación de datos
Varios de los valores del esquema están restringidos por el archivo .mof con el atributo non_null. No se pueden establecer en una variante nula. Para todos los tipos que no son de matriz, el código controles parentales inicializa los valores. En el caso de las matrices, los estados vacíos se pueden escribir mediante una variante nula, una variante vacía o una matriz de variantes de tamaño cero. El proveedor WMI normalizará todos estos valores en una representación de estado de variante null en lectura.
Notas del vínculo de extensibilidad de la interfaz de usuario
El uso de WMI para registrar un vínculo de extensibilidad de interfaz de usuario requiere especificar la siguiente información:
- GUID: varios vínculos pueden compartir el mismo GUID si forman parte de un paquete o conjunto de aplicaciones comunes.
- Subsistema: diseñado para indicar clasificaciones de tipos de vínculo, como conjuntos o aplicaciones compatibles independientes
- Nombre de la ruta de acceso y el identificador de la DLL del recurso: especifica el recurso para mostrar el nombre para mostrar para el vínculo.
- Ruta de acceso e id. del recurso de subtítulos: especifica el recurso para texto adicional por debajo del nombre.
- Ruta de acceso de imagen: ruta de acceso completa de un mapa de bits de 24 × 24 píxeles (BMP), con una profundidad de color de 8 bits por píxel y preferiblemente un canal alfa. Esto se especifica de forma coherente con las extensiones de shell: <ruta> de acceso del sistema de archivos,< identificador de recurso negativo\1>. Por ejemplo: C:\Windows\System32\Wpccpl.dll,-20.
- Ruta de acceso de imagen deshabilitada: igual que la ruta de acceso de imagen anterior, excepto la variante del mapa de bits que muestra el estado deshabilitado. Esta imagen se muestra cuando los controles parentales están desactivados.
- Ruta de acceso de exe: ruta de acceso completa a un archivo ejecutable que se va a invocar mediante ShellExecute(). Esta ruta de acceso debe especificarse con barras diagonales inversas o el vínculo no invocará el archivo ejecutable. La adición de un token %SID% después de la ruta de acceso exe dará lugar a la ejecución del vínculo sustituyendo la cadena de SID para el usuario para el que se está viendo la página central. A continuación, el ejecutable puede usar la cadena de SID para administrar la funcionalidad del usuario especificado.
La desinstalación de la aplicación debe quitar un registro de vínculo de extensibilidad.
Notas de invalidación del vínculo de extensibilidad web y filtro de contenido web
Al establecer la propiedad FilterID en el mismo GUID que un vínculo de extensibilidad de interfaz de usuario registrado existente, el vínculo que se muestra se promoverá desde un vínculo genérico en Otras configuraciones al vínculo exclusivo Restricciones web. Se trata de una configuración para todo el equipo y, por tanto, hará que el LSP del filtro de contenido web integrada omita todo el filtrado para todos los usuarios controlados. También se debe establecer un nombre descriptivo en la propiedad FilterName, que se especifica mediante una ruta de acceso al archivo DLL de recursos y el identificador.
El sistema de controles parentales recomienda lo siguiente desde cualquier filtro web invalidante:
- Respeta el estado general de controles parentales activados y desactivados para un usuario.
- Respeta la configuración de informes de actividad de un usuario.
- Supervise la propiedad FilterID. Si cambia del GUID especificado del proveedor, otro filtro ha tomado posesión y el filtro del proveedor debe deshabilitarse. Se ha agregado una interfaz COM para reducir la sobrecarga de comprobar periódicamente este cambio frente a una llamada WMI.
- Se recomienda encarecidamente respetar las entradas de la lista de exención de direcciones URL y de solo lectura y de solo lectura y escritura.
- Se recomienda respetar la lista de invalidación de direcciones URL por usuario (lista de permitidos o bloqueados).
- Ser sólido para un cambio rápido de usuario.
Los controles parentales no aplican ninguna limitación sobre cómo una web u otro filtro de contenido se conecta a Windows para implementar el filtrado. Los proveedores pueden aprovechar sus inversiones actuales o tecnologías preferidas (LSP, TDI, otras).
La desinstalación del filtro del proveedor debe anular el registro de las entradas FilterID y FilterName. Esto se realiza estableciendo FilterID en GUID_NULL y FilterName en una variante null. El filtro de contenido web en el cuadro se volverá a habilitar.
Tenga en cuenta que volver a habilitar el filtro web en el cuadro solo filtrará nuevas sesiones y no las sesiones activas antes del modificador.
Formato de importación o exportación de filtro de contenido web
Esta característica no se admite en Windows 8.
Windows 7 y Windows Vista: Esta característica se admite.
<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>
Notas de invalidación de restricciones de aplicación
Las invalidaciones de restricciones de aplicación se establecen por usuario para permitir archivos binarios o rutas de acceso específicos. Si se configura un nuevo usuario controlado parentalmente y se necesitan invalidaciones de restricciones de aplicación para ese usuario, se recomienda usar la clave De ejecución de Windows en el Registro con una pequeña aplicación marcada como requerir elevación implementada para escribir las invalidaciones. Esto dará como resultado una solicitud de credenciales únicas para configurar las invalidaciones para el usuario, después de lo cual los archivos binarios de destino de las invalidaciones no serán un problema para los usuarios debido a solicitudes de invalidación de administrador adicionales.
Acciones necesarias para que los cambios de configuración sean efectivos
Si un administrador cambia la configuración de un usuario estándar que ha iniciado sesión, se genera un mensaje de advertencia. Indica que los cambios de configuración pueden no surtir efecto hasta que el usuario controlado cierra sesión y vuelve a iniciarse. Este es un diseño conservador. La mayoría de la configuración surtirá efecto casi inmediatamente mientras el usuario controlado ha iniciado sesión. Una excepción es para los juegos, donde la configuración surtirá efecto la próxima vez que se ejecute el Explorador de juegos o invoque el juego se intente.
Código de ejemplo
Los ejemplos de C++ se proporcionan en el SDK que muestra el uso de las características de extensibilidad de configuración. Consulte la sección Ejemplos de controles parentales.
Herramientas de pruebas independientes
El complemento Wmimgmt.msc facilita la inspección de clases e instancias y la herramienta de Wbemtest.exe.
Consideraciones de 64 bits
Actualmente, las versiones del sistema operativo Windows de 64 bits tienen instalado un proveedor WMI de 32 bits y un proveedor de 64 bits.
Desarrollo y depuración de código general
Si Visual Studio se usa para el desarrollo de código de administración de la configuración, la depuración local requerirá ejecutar Visual Studio con derechos de administrador (invocando con Ejecutar como administrador mediante la línea de comandos o la opción de clic con el botón derecho). Esto se debe al aislamiento de procesos y mensajes implementado por UAC.
Lectura de la configuración mínima de la API de cumplimiento
Interfaces y métodos
La API de cumplimiento controlada por el archivo de encabezado Wpcapi.h proporciona acceso de solo lectura simplificado a la siguiente configuración mediante interfaces COM.
Los métodos de interfaz raíz IWindowsParentalControls proporcionan acceso a:
- Métodos IWPCSettings:
- IsLoggingRequired(): ¿los informes de actividad están configurados como activados para el usuario?
- GetLastSettingsChangeTime(): la aplicación puede tener en cuenta si alguna directiva de configuración ha cambiado desde una comprobación anterior.
- GetRestrictions(): lea si las restricciones web, los límites de tiempo, las restricciones de juego o las restricciones de aplicación se establecen en activados.
- Métodos IWPCWebSettings:
- GetSettings():: recupera marcas para filtrar activado o desactivado y descargas bloqueadas.
- RequestURLOverride(): escriba una solicitud en el mecanismo de invalidación del administrador (aprobación por encima del hombro) que presentará un cuadro de diálogo que contiene las direcciones URL que se van a aprobar.
- Métodos IWPCGamesSettings:
- IsBlocked(): para un identificador de aplicación de juego determinado, es el juego bloqueado por los controles parentales y por qué motivo.
- GetVisibility(): proporciona información sobre si la interfaz de usuario de controles parentales está oculta actualmente.
- GetWebFilterInfo(): proporciona una interfaz para obtener el identificador del filtro de contenido web activo actualmente.
Código de ejemplo
Los ejemplos de C++ se proporcionan en el SDK que muestra el uso de la API de cumplimiento. Consulte la sección Ejemplos de controles parentales.