Utilisation des API de paramètres de contrôle parental
Les paramètres sont abordés avant la journalisation, car la journalisation est conditionnelle aux paramètres de l’utilisateur.
Écriture/lecture des paramètres de l’API WMI
L’API WMI fournit un accès non abstrait (brut) à tous les paramètres instanciés par l’infrastructure de contrôle parental, comme défini dans le fichier de schéma Wpcsprov.mof. Le magasin de paramètres existe dans l’espace de noms \root\CIMV2\Applications\WindowsParentalControls, avec les définitions de classe suivantes définissant un schéma. Les éléments d’extensibilité sont notés.
Par ordinateur :
- WpcSystemSettings (un instance)
- Méthodes AddUser() et RemoveUser() pour créer et supprimer des paramètres de contrôle parental pour un SID donné, respectivement.
- Propriétés du système d’évaluation des jeux en vigueur, ainsi que le suivi et la notification liés à la vérification par l’administrateur des journaux.
- Extensibilité : propriétés pour les listes d’exemption d’URL et d’application HTTP en lecture seule et en lecture/écriture pour le filtrage de contenu web, l’ID de remplacement du filtre de contenu web et le chemin d’accès et l’ID de la ressource de nom, ainsi que le numéro d’événement de journal personnalisé des champs et de l’inscription de nom d’en-tête.
- WpcRatingsSystem (un instance par système d’évaluation installé)
- WpcRating (un instance par niveau d’évaluation).
- WpcRatingDescriptor (un instance par descripteur d’évaluation).
- Extensibilité : WpcExtension (un instance pour chaque lien d’extensibilité du panneau contrôles parentaux ajouté).
- Propriétés du GUID, du sous-système, de l’ID, du chemin de ressource d’image d’image d’état désactivé, du chemin d’accès exécutable, du chemin et de l’ID de la ressource de nom d’affichage, du chemin et de l’ID de la ressource de sous-titre.
Par utilisateur contrôlé :
WpcUserSettings (un instance par utilisateur contrôlé)
Propriétés pour la propriété du SID, l’indicateur d’activation/désactivation des contrôles parentaux, l’indicateur d’activation/désactivation de la journalisation, l’indicateur d’activation/désactivation des limites de temps, l’indicateur des remplacements activés, le masque des heures d’ouverture de session et l’indicateur Général Des restrictions d’application activées/désactivées.
Dans Windows 8 la propriété existante représente la première demi-heure pour chaque heure. Une nouvelle propriété de demi-heure a été ajoutée pour représenter la deuxième moitié de chaque heure. Une nouvelle propriété supplémentaire a été introduite pour représenter l’allocation de temps quotidienne.
Windows 7 et Windows Vista : Les restrictions du minuteur ont pris en charge une granularité d’une heure.
WpcWebSettings (un instance par utilisateur contrôlé)
- Propriétés pour le SID propriétaire, indicateur de filtrage activé/désactivé, niveau de filtre, indicateur de blocage des téléchargements de fichiers, indicateur sites non classés bloqués.
WpcUrlOverride (une instance par URL explicitement autorisée ou refusée dans la liste de remplacement d’URL utilisée comme liste verte/bloquée pour le filtrage de contenu web)
- Propriétés pour le SID propriétaire, l’URL affectée, l’état autorisé/bloqué.
WpcAppOverride (une instance par chemin d’accès explicitement autorisée dans la liste de remplacements d’application restrictions générales)
- Propriétés pour la propriété du SID. ID de règle SAFER, chemin d’accès à l’application.
WpcGamesSettings (un instance par utilisateur contrôlé)
- Propriétés pour le SID propriétaire, indicateur de jeux autorisés, GUID du système d’évaluation pour ces paramètres, indicateur autoriser les jeux non notés, ID de l’évaluation maximale autorisée sous le système actuel, collection de descripteurs refusés.
WpcGameOverride (un instance par ID d’application explicitement autorisé ou refusé)
- Propriétés pour le SID propriétaire, l’ID d’application identifiant le jeu, l’état autorisé/refusé.
Notes sur la représentation des données
Plusieurs paramètres du schéma sont limités par le fichier .mof avec l’attribut non_null. Celles-ci ne peuvent pas être définies sur une variante null. Pour tous les types autres que tableaux, le code de contrôle parental initialise les valeurs. Pour les tableaux, les états vides peuvent être écrits à l’aide d’une variante null, d’une variante vide ou d’un tableau de variantes de taille nulle. Le fournisseur WMI normalisera tous ces éléments à une représentation d’état de variante null lors de la lecture.
Notes de lien d’extensibilité de l’interface utilisateur
L’utilisation de WMI pour inscrire un lien d’extensibilité d’interface utilisateur nécessite de spécifier les informations suivantes :
- GUID : plusieurs liens peuvent partager le même GUID s’ils font partie d’un package ou d’une suite commune.
- Sous-système : destiné à indiquer les classifications des types de liens, tels que les suites ou les applications conformes autonomes
- Nom du chemin d’accès et de l’ID de la ressource : spécifie la ressource pour le nom d’affichage à afficher pour le lien.
- Chemin d’accès et ID de la ressource de sous-titre : spécifie la ressource pour le texte supplémentaire sous le nom.
- Chemin d’accès à l’image : chemin complet d’une bitmap de 24 × 24 pixels (BMP), avec une profondeur de couleur de 8 bits par pixel et de préférence un canal alpha. Ceci est spécifié d’une manière cohérente avec les extensions de l’interpréteur de commandes : <chemin> du système de fichiers,< ID de ressource négatif\1>. Par exemple : C:\Windows\System32\Wpccpl.dll,-20.
- Chemin d’accès de l’image désactivé : identique au chemin d’accès à l’image ci-dessus, à l’exception de la variante de bitmap montrant l’état désactivé. Cette image s’affiche lorsque le contrôle parental est désactivé.
- Chemin d’accès d’exe : chemin d’accès complet à un exécutable à appeler à l’aide de ShellExecute(). Ce chemin d’accès doit être spécifié avec des barres obliques inverses, sinon le lien n’appelle pas l’exécutable. L’ajout d’un jeton %SID% après le chemin d’accès exe entraîne l’exécution du lien en remplaçant la chaîne SID de l’utilisateur pour lequel la page hub est actuellement affichée. L’exécutable peut ensuite utiliser la chaîne SID pour gérer les fonctionnalités de l’utilisateur spécifié.
La désinstallation de l’application doit supprimer une inscription de lien d’extensibilité.
Remarques de remplacement de lien d’extensibilité web et de filtre de contenu web
En définissant la propriété FilterID sur le même GUID qu’un lien d’extensibilité d’interface utilisateur inscrit existant, le lien affiché sera promu d’un lien générique dans Autres paramètres vers le lien exclusif Restrictions web. Il s’agit d’un paramètre à l’échelle de l’ordinateur. Par conséquent, le filtre de contenu web intégré À LSP contourne tout le filtrage pour tous les utilisateurs contrôlés. Un nom descriptif doit également être défini dans la propriété FilterName, qui est spécifiée par un chemin d’accès à la DLL et à l’ID de ressource.
Le système de contrôle parental recommande ce qui suit à partir de tout filtre web de substitution :
- Respecter l’état activé/désactivé du contrôle parental global pour un utilisateur.
- Respectez les paramètres de rapport d’activité d’un utilisateur.
- Surveillez la propriété FilterID. S’il change par rapport au GUID spécifié par le fournisseur, un autre filtre a pris possession et le filtre du fournisseur doit se désactiver lui-même. Une interface COM a été ajoutée pour réduire la surcharge liée à la vérification périodique de cette modification par rapport à un appel WMI.
- Nous vous recommandons vivement d’honorer les entrées de liste d’exemption d’URL et d’application HTTP en lecture seule et en lecture/écriture.
- Recommandé pour respecter la liste de remplacements d’URL par utilisateur (liste verte/bloquée).
- Être robuste pour un basculement rapide de l’utilisateur.
Le contrôle parental n’impose aucune limitation sur la façon dont un filtre web ou autre filtre de contenu se connecte à Windows pour l’implémentation du filtrage. Les fournisseurs peuvent tirer parti de leurs investissements actuels ou de leurs technologies préférées (LSP, TDI, etc.).
La désinstallation du filtre du fournisseur doit annuler l’inscription des entrées FilterID et FilterName. Pour ce faire, définissez FilterID sur GUID_NULL et FilterName sur une variante null. Le filtre de contenu web intégré est ensuite réactivé.
Notez que la réactivation du filtre web intégré filtre uniquement les nouvelles sessions, et non les sessions actives à partir d’avant le basculement.
Format d’exportation/d’importation/d’exportation/d’importation de filtre de contenu web
Cette fonctionnalité n’est pas prise en charge sur Windows 8.
Windows 7 et Windows Vista : Cette fonctionnalité est prise en charge.
<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>
Remarques de remplacement des restrictions d’application
Les remplacements de restrictions d’application sont définis par utilisateur pour autoriser des fichiers binaires ou des chemins spécifiques. Si un nouvel utilisateur contrôlé par un parent est configuré et que des remplacements de restrictions d’application sont nécessaires pour cet utilisateur, il est recommandé d’utiliser la clé d’exécution Windows dans le Registre avec une petite application marquée comme nécessitant une élévation déployée pour écrire les remplacements. Cela entraîne une invite d’informations d’identification à usage unique pour configurer les remplacements pour l’utilisateur, après quoi les fichiers binaires cibles pour les remplacements ne seront pas une gêne pour les utilisateurs en raison d’autres invites de remplacement de l’administrateur.
Actions requises pour que les modifications de paramètres deviennent effectives
Si un administrateur modifie les paramètres d’un utilisateur standard connecté, un message d’avertissement est généré. Il indique que les modifications de paramètres peuvent ne pas prendre effet tant que l’utilisateur contrôlé ne se déconnecte pas et se reconnecte. C’est une conception conservatrice. La plupart des paramètres prennent effet presque immédiatement pendant que l’utilisateur contrôlé est connecté. Une exception est pour les jeux, où les paramètres prendront effet lors de la prochaine exécution du jeu Explorer ou de la tentative d’appel du jeu.
Exemple de code
Des exemples C++ sont fournis dans le Kit de développement logiciel (SDK) illustrant l’utilisation des fonctionnalités d’extensibilité des paramètres. Consultez la section Exemples de contrôles parentaux.
Outils de test indépendants
L’inspection des classes et des instances est facilitée par le plug-in Wmimgmt.msc et l’outil Wbemtest.exe.
Considérations 64 bits
Les versions de système d’exploitation Windows 64 bits ont actuellement un fournisseur WMI 32 bits et un fournisseur 64 bits installés.
Développement et débogage de code général
Si Visual Studio est utilisé pour le développement de code de gestion des paramètres, le débogage local nécessite l’exécution de Visual Studio avec des droits d’administrateur (appel avec l’option Exécuter en tant qu’administrateur à l’aide de la ligne de commande ou de l’option clic droit). Cela est dû à l’isolation des processus et des messages implémentés par UAC.
Lecture des paramètres de l’API de conformité minimale
Interfaces et méthodes
L’API de conformité contrôlée par le fichier d’en-tête Wpcapi.h offre un accès simplifié en lecture seule aux paramètres suivants à l’aide d’interfaces COM.
Les méthodes d’interface racine IWindowsParentalControls permettent d’accéder à :
- Méthodes IWPCSettings :
- IsLoggingRequired() : le rapport d’activité est-il configuré comme activé pour l’utilisateur ?
- GetLastSettingsChangeTime() : l’application peut savoir si des stratégies de paramètres ont changé depuis une case activée précédente.
- GetRestrictions() : indique si les restrictions web, les limites de temps, les restrictions de jeu ou les restrictions d’application sont activées.
- Méthodes IWPCWebSettings :
- GetSettings(): récupère les indicateurs de filtrage activés ou désactivés et les téléchargements bloqués.
- RequestURLOverride() : entrez une requête dans le mécanisme de remplacement de l’administrateur (approbation à l’épaule) qui présente une boîte de dialogue contenant les URL à approuver.
- Méthodes IWPCGamesSettings :
- IsBlocked() : pour un ID d’application de jeu donné, est le jeu bloqué par les contrôles parentaux et pour quelle raison.
- GetVisibility() : fournit des informations indiquant si l’interface utilisateur du contrôle parental est actuellement masquée.
- GetWebFilterInfo() : fournit une interface permettant d’obtenir l’ID du filtre de contenu web actuellement actif.
Exemple de code
Des exemples C++ sont fournis dans le Kit de développement logiciel (SDK) illustrant l’utilisation de l’API conformité. Consultez la section Exemples de contrôles parentaux.