Использование API параметров родительского контроля
Параметры обсуждаются перед ведением журнала, так как ведение журнала зависит от параметров пользователя.
Параметры записи и чтения API WMI
API WMI предоставляет неабстрактный (необработанный) доступ ко всем параметрам, созданным инфраструктурой родительского контроля, как определено в файле схемы Wpcsprov.mof. Хранилище параметров существует в пространстве имен \root\CIMV2\Applications\WindowsParentalControls, при этом следующие определения классов определяют схему. Отмечены элементы расширяемости.
Для каждого компьютера:
- WpcSystemSettings (один экземпляр)
- Методы AddUser() и RemoveUser() для создания и удаления параметров родительского контроля для заданного идентификатора безопасности соответственно.
- Свойства текущей системы оценки игр, а также отслеживание и уведомление, связанные с проверкой журналов администраторами.
- Расширяемость. Свойства для http-приложений только для чтения и чтения и записи, списки исключений URL-адресов для фильтрации веб-содержимого, переопределение идентификатора и идентификатора ресурса имени, а также число полей и регистрация имени имени события журнала.
- WpcRatingsSystem (по одному экземпляру на каждую установленную систему оценки)
- WpcRating (один экземпляр на уровень оценки).
- WpcRatingDescriptor (по одному экземпляру на дескриптор оценки).
- Расширяемость: WpcExtension (по одному экземпляру на каждую добавленную ссылку расширения панели родительского контроля).
- Свойства guid, подсистемы, id, image resource path, disabled state image resource path, executable path, display name resource DLL path and ID, resource DLL path and ID, resource DLL path and ID.
Для каждого управляемого пользователя:
WpcUserSettings (по одному экземпляру на каждого управляемого пользователя)
Свойства для владеть идентификатором безопасности, флагом включения и выключения родительского элемента управления, флагом входа и выключения, флагом ограничений по времени для включения и выключения, флага включения переопределения, маски часов входа в систему и флага "Общие ограничения для приложений".
В Windows 8 существующее свойство представляет первые полчаса для каждого часа. Добавлено новое свойство на полчаса, представляющее вторую половину каждого часа. Было введено дополнительное новое свойство, представляющее ежедневное временное пособие.
Windows 7 и Windows Vista: Ограничения таймера поддерживают степень детализации в 1 час.
WpcWebSettings (по одному экземпляру на каждого управляемого пользователя)
- Свойства для владеть идентификатором безопасности, флагом включения и выключения фильтра, уровнем фильтра, флагом блокировки загрузки файлов, флагом блокировки неоцененных сайтов.
WpcUrlOverride (один экземпляр на КАЖДЫЙ URL-адрес, явно разрешенный или запрещенный в списке переопределения URL-адресов, используемый в качестве списка разрешений или блокировок для фильтрации веб-содержимого)
- Свойства идентификатора безопасности владельца, затронутый URL-адрес, разрешенное или заблокированное состояние.
WpcAppOverride (один экземпляр на путь, явно разрешенный в списке переопределения приложений "Общие ограничения приложений")
- Свойства для идентификатора безопасности владельца. Идентификатор правила SAFER, путь к приложению.
WpcGamesSettings (один экземпляр на управляемого пользователя)
- Свойства для владения идентификатором безопасности, флаг разрешенных игр, GUID системы оценок для этих параметров, флаг разрешенных игр без оценки, идентификатор максимально допустимой оценки в текущей системе, коллекция запрещенных дескрипторов.
WpcGameOverride (один экземпляр на идентификатор приложения явно разрешен или запрещен)
- Свойства для идентификатора безопасности владельца, идентификатор приложения, определяющий игру, разрешенное или запрещенное состояние.
Заметки о представлении данных
Некоторые параметры в схеме ограничены MOF-файлом с атрибутом non_null. Для них не может быть задано значение null variant. Для всех типов, не относящихся к массивам, код Родительского контроля инициализирует значения. Для массивов пустые состояния могут быть записаны с помощью варианта NULL, пустого варианта или массива вариантов нулевого размера. Поставщик WMI нормализует все эти значения до представления варианта null при чтении.
Заметки о связи расширяемости пользовательского интерфейса
Использование WMI для регистрации связи расширения пользовательского интерфейса требует указания следующих сведений:
- GUID — несколько ссылок могут использовать один и тот же GUID, если они являются частью общего пакета или набора.
- Подсистема — предназначена для указания классификаций типов ссылок, таких как наборы или автономные совместимые приложения.
- Путь и идентификатор ресурса name — указывает ресурс для отображаемого имени для ссылки.
- Путь и идентификатор ресурса субтитров — указывает ресурс для дополнительного текста под именем.
- Путь к изображению — полный путь 24-× 24-пиксельного растрового изображения (BMP) с глубиной цвета 8 бит на пиксель и предпочтительно альфа-каналом. Этот параметр указывается в соответствии с расширениями оболочки: <путь к> файловой системе,< отрицательный идентификатор ресурса\1>. Например, C:\Windows\System32\Wpccpl.dll,-20.
- Путь к отключенному изображению — то же самое, что и путь к изображению выше, за исключением варианта растрового изображения, отображающего отключенное состояние. Это изображение отображается, когда родительский контроль отключен.
- Путь к exe — полный путь к исполняемому файлу, вызываемому с помощью ShellExecute(). Этот путь должен быть указан с обратными косыми чертами, иначе ссылка не будет вызывать исполняемый файл. Добавление маркера %SID% после пути к exe приведет к выполнению ссылки, заменяющей строку sid для пользователя, для которого в настоящее время просматривается центральная страница. Затем исполняемый файл может использовать строку sid для управления функциональными возможностями указанного пользователя.
При удалении приложения необходимо удалить регистрацию ссылки расширяемости.
Примечания о переопределении ссылок и фильтра веб-содержимого
Если задать для свойства FilterID тот же ИДЕНТИФИКАТОР GUID, что и для существующей зарегистрированной ссылки на расширяемость пользовательского интерфейса, отображаемая ссылка будет повышена из универсальной ссылки в разделе Другие параметры до эксклюзивной ссылки Ограничения веб-интерфейса. Это параметр на уровне компьютера, который приведет к тому, что встроенный LSP-фильтр веб-содержимого будет обходить всю фильтрацию для всех управляемых пользователей. Описательное имя также должно быть задано в свойстве FilterName, которое указывается путем к библиотеке DLL ресурса и идентификатору.
Система родительского контроля рекомендует следующее из любого переопределяющего веб-фильтра:
- Учитывая общее состояние включения и выключения родительского контроля для пользователя.
- Учитывать параметры отчетов о действиях для пользователя.
- Отслеживайте свойство FilterID. Если он изменяется из указанного GUID поставщика, другой фильтр становится владельцем, и фильтр поставщика должен отключиться сам. Добавлен COM-интерфейс, чтобы сократить затраты на периодические проверки этого изменения по сравнению с вызовом WMI.
- Настоятельно рекомендуется учитывать как записи 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 в реестре с небольшим приложением, помеченным как требующее повышения прав для записи переопределений. Это приведет к одноразовому запросу учетных данных на настройку переопределений для пользователя, после чего целевые двоичные файлы для переопределений не будут создавать неудобства для пользователей из-за дальнейших запросов администратора на переопределение.
Действия, необходимые для изменения параметров в силу
Если администратор изменяет параметры стандартного пользователя, выполнившего вход, создается предупреждающее сообщение. В нем говорится, что изменения параметров могут не вступить в силу, пока управляемый пользователь не выйдет из системы и снова не войтется в систему. Это консервативный дизайн. Большинство параметров вступают в силу почти сразу же, когда управляемый пользователь войдет в систему. Одним из исключений является игра, в которой параметры вступают в силу при следующей попытке запуска Обозреватель игр или вызова игры.
Образец кода
Примеры C++ приведены в пакете SDK, демонстрирующие использование функций расширяемости параметров. См. раздел Примеры родительского контроля.
Независимые Инструменты тестирования
Проверка классов и экземпляров упрощается подключаемым модулем Wmimgmt.msc и инструментом Wbemtest.exe.
64-разрядные рекомендации
В 64-разрядных версиях операционной системы Windows в настоящее время установлен как 32-разрядный поставщик WMI, так и 64-разрядный поставщик.
Общая разработка и отладка кода
Если Visual Studio используется для разработки кода управления параметрами, для локальной отладки потребуется запустить Visual Studio с правами администратора (вызов с помощью команды Запуск от имени администратора с помощью командной строки или щелкнуть правой кнопкой мыши). Это связано с изоляцией процессов и сообщений, реализованной UAC.
Чтение параметров API минимального соответствия
Интерфейсы и методы
API соответствия требованиям, контролируемый файлом заголовка Wpcapi.h, предоставляет упрощенный доступ только для чтения к следующим параметрам с помощью COM-интерфейсов.
Методы корневого интерфейса IWindowsParentalControls предоставляют доступ к:
- Методы IWPCSettings:
- IsLoggingRequired() — настроен ли для пользователя отчеты о действиях как включено?
- GetLastSettingsChangeTime() — приложение может знать, изменились ли какие-либо политики параметров с момента предыдущего проверка.
- GetRestrictions() — сведения о том, заданы ли ограничения веб-сайтов, ограничения времени, ограничения игр или ограничения приложений.
- Методы IWPCWebSettings:
- GetSettings()— извлекает флаги для включения или отключения фильтра и заблокированных скачиваний.
- RequestURLOverride() — ввод запроса в механизм переопределения администратора (утверждение через плечо), в котором будет представлено диалоговое окно с URL-адресами для утверждения.
- Методы IWPCGamesSettings:
- IsBlocked() — для заданного идентификатора игрового приложения — это игра, заблокированная родительским контролем и по какой причине.
- GetVisibility()— предоставляет сведения о том, скрыт ли пользовательский интерфейс Родительского контроля в настоящее время.
- GetWebFilterInfo() — предоставляет интерфейс для получения идентификатора активного фильтра веб-содержимого.
Образец кода
Примеры C++ приведены в пакете SDK, демонстрирующие использование API соответствия требованиям. См. раздел Примеры родительского контроля.