共用方式為


使用家長監護設定 API

系統會在記錄之前討論設定,因為記錄有條件于使用者的設定。

WMI API 設定寫入/讀取

WMI API 提供非抽象 (原始) 存取由家長監護基礎結構具現化的所有設定,如 Wpcsprov.mof 架構檔案中所定義。 設定存放區存在於 \root\CIMV2\Applications\WindowsParentalControls 命名空間中,並具有下列定義架構的類別定義。 會記錄擴充性專案。

每部電腦:

  • WpcSystemSettings (一個實例)
    • AddUser () 和 RemoveUser () 方法,分別建立和刪除指定 SID 的家長監護設定。
    • 目前遊戲評等系統強制的屬性,以及與系統管理員檢查記錄相關的追蹤和通知。
    • 擴充性:唯讀和讀取/寫入 HTTP 應用程式和 URL 豁免清單的屬性,適用于 Web 內容篩選、Web 內容篩選覆寫識別碼和名稱資源 DLL 路徑和識別碼,以及欄位和標頭名稱註冊的自訂記錄事件編號。
  • WpcRatingsSystem (每個已安裝) 每個評等系統一個實例
    • WpcRating (每個評等層級) 一個實例。
    • WpcRatingDescriptor (每個評等描述元) 一個實例。
  • 擴充性:每個家長控制項面板擴充性連結每個新增) ,WpcExtension (一個實例。
    • GUID、子系統、識別碼、映射資源路徑、已停用狀態影像資源路徑、可執行檔路徑、顯示名稱資源 DLL 路徑和識別碼、子標題資源 DLL 路徑和識別碼的屬性。

依控制的使用者:

  • WpcUserSettings (每個受控制的使用者) 一個實例

    • 擁有 SID、開啟/關閉旗標、登入/關閉旗標、時間限制開啟/關閉旗標、啟用旗標、登入時數遮罩和一般應用程式限制的開啟/關閉旗標的屬性。

    • 在 Windows 8現有的 屬性代表每小時的前半小時。 已新增半小時屬性,以代表每小時的第二半。 引進了額外的新屬性來代表每日時間額度。

      Windows 7 和 Windows Vista: 計時器限制支援 1 小時的資料細微性。

  • WpcWebSettings (每個受控制的使用者) 一個實例

    • 擁有 SID、篩選開啟/關閉旗標、篩選層級、檔案下載封鎖旗標、未評等網站封鎖旗標的屬性。
  • WpcUrlOverride (每個 URL 明確允許或拒絕的 URL 覆寫清單中,用於 Web 內容篩選的允許/封鎖清單)

    • 擁有 SID、受影響的 URL、允許/封鎖狀態的屬性。
  • WpcAppOverride (一般應用程式限制應用程式覆寫清單中明確允許的每個路徑一個實例)

    • 擁有 SID 的屬性。 更安全的規則識別碼,應用程式的路徑。
  • WpcGamesSettings (每個受控制使用者一個實例)

    • 擁有 SID、遊戲允許的旗標、這些設定的評分系統的 GUID、允許未評分的遊戲旗標、目前系統下允許評分上限的識別碼、拒絕描述元集合的屬性。
  • WpcGameOverride (每個應用程式識別碼明確允許或拒絕的實例)

    • 擁有 SID、識別遊戲的應用程式識別碼、允許/拒絕狀態的屬性。

資料表示附注

架構內的數個設定受限於具有屬性non_null的 .mof 檔案。 這些無法設定為 Null 變體。 針對所有非陣列類型,家長監護程式碼會初始化值。 對於陣列,空狀態可以使用 Null 變體、空白變體或零大小的 Variant 陣列來寫入。 WMI 提供者會將所有這些提供者正規化為讀取時 Null 變體狀態標記法。

使用 WMI 註冊 UI 擴充性連結需要指定下列資訊:

  • GUID - 如果多個連結是通用套件或套件的一部分,可能會共用相同的 GUID。
  • 子系統 - 用來指出連結類型的分類,例如套件或獨立相容應用程式
  • 名稱資源 DLL 路徑和識別碼 - 指定要顯示連結之顯示名稱的資源。
  • 子標題資源 DLL 路徑和識別碼 - 指定名稱下方其他文字的資源。
  • 影像路徑 - 24 × 24 圖元點陣圖的完整路徑, (BMP) ,每個圖元 8 位的色彩深度,最好是 Alpha 色板。 這會以與殼層延伸模組一致的方式指定: < 檔案系統路徑 > 、 < 負資源識別碼\1 > 。 例如:C:\Windows\System32\Wpccpl.dll,-20。
  • 停用的影像路徑 - 與上述影像路徑相同,但顯示停用狀態的點陣圖變體除外。 當家長監護關閉時,會顯示此影像。
  • Exe 路徑 - 使用 ShellExecute () 叫用之可執行檔的完整路徑。 此路徑必須使用反斜線來指定,否則連結將不會叫用可執行檔。 在執行路徑之後新增 %SID% 權杖會導致連結執行取代目前正在檢視中樞頁面之使用者的 SID 字串。 可執行檔接著可以使用 SID 字串來管理指定使用者的功能。

應用程式卸載必須移除擴充性連結註冊。

藉由將 FilterID 屬性設定為與現有已註冊 UI 擴充性連結相同的 GUID,顯示的連結將會從其他設定中的泛型連結升級為獨佔的 Web 限制連結。 這是全電腦設定,因此會導致內建的 Web 內容篩選 LSP 略過所有受控制使用者的所有篩選。 在 FilterName 屬性中也應該設定描述性名稱,該屬性是由資源 DLL 和識別碼的路徑所指定。

家長監護系統建議從任何覆寫的 Web 篩選準則取得下列各項:

  • 接受使用者的整體家長監護/關閉狀態。
  • 接受使用者的 [活動報告] 設定。
  • 監視 FilterID 屬性。 如果它從廠商指定的 GUID 變更,另一個篩選已取得擁有權,而廠商的篩選準則應該停用本身。 已新增 COM 介面,以減少定期檢查這項變更與 WMI 呼叫的額外負荷。
  • 強烈建議您同時接受唯讀和讀取/寫入 HTTP 應用程式和 URL 豁免清單專案。
  • 建議接受每個使用者 URL 覆寫清單 (允許/封鎖清單) 。
  • 對快速使用者切換保持強固。

家長監護不會對 Web 或其他內容篩選外掛程式至 Windows 進行實作篩選的任何限制。 廠商可以利用其目前投資或慣用的技術, (LSP、TDI、其他) 。

卸載廠商的篩選準則必須取消註冊 FilterID 和 FilterName 專案。 這是藉由將 FilterID 設定為 GUID_Null,並將 FilterName 設定為 variant null 來執行。 接著會重新啟用內建的 Web 內容篩選。

請注意,重新啟用內建 Web 篩選器只會篩選新的會話,而不是在切換之前使用中的會話。

Web 內容篩選允許/封鎖清單匯出/匯入格式

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 設定

介面和方法

由標頭檔 Wpcapi.h 控制的合規性 API 可使用 COM 介面,簡化對下列設定的唯讀存取。

IWindowsParentalControls 根介面方法可讓您存取:

  • IWPCSettings 方法:
    • IsLoggingRequired () — 活動報告是否設定為針對使用者?
    • GetLastSettingsChangeTime () — 應用程式可以在先前檢查之後是否有任何設定原則變更。
    • GetRestrictions () — 讀取 Web 限制、時間限制、遊戲限制或應用程式限制是否設定為開啟。
  • IWPCWebSettings 方法:
    • GetSettings () – 擷取旗標以篩選或關閉並封鎖下載。
    • RequestURLOverride () — 將要求輸入系統管理員覆寫 (過度核准) 機制,其中會顯示包含要核准之 URL 的對話方塊。
  • IWPCGamesSettings 方法:
    • IsBlocked () — 針對指定的遊戲應用程式識別碼,是由家長監護封鎖的遊戲,原因為何。
  • GetVisibility () — 提供有關家長監護 UI 目前是否隱藏的資訊。
  • GetWebFilterInfo () — 提供介面,以取得目前使用中 Web 內容篩選的識別碼。

範例程式碼

C++ 範例是在示範使用合規性 API 的 SDK 中提供。 請參閱家長監護範例一節。