共用方式為


適用於 Microsoft Intune 的自定義合規性探索腳本

您必須先定義可探索裝置上可用之自定義相容性設定的腳本,才能使用自定義設定來符合 Microsoft Intune。 您使用的文稿取決於平臺:

  • Windows 裝置使用 PowerShell 腳本。
  • 只要裝置上已安裝並設定對應的解釋器,Linux 裝置就可以使用任何語言執行腳本。

探索腳本會部署到裝置,作為自定義合規性原則的一部分。 當合規性在裝置上執行時,腳本會探索您也透過自定義合規性政策所提供的 JSON 檔案所定義的設定。

所有探索文稿:

  • 在您建立合規性政策之前,會將 新增至 Intune。 新增之後,當您使用自定義設定建立合規性政策時,可以選取腳本。
    • 每個探索腳本只能與一個合規性政策搭配使用,而且每個合規性政策只能包含一個探索腳本。
    • 在從原則中取消指派腳本之前,無法刪除指派給合規性原則的探索腳本。
  • 在接收合規性原則的裝置上執行。 腳本會評估您在建立自定義合規性政策時上傳之 JSON 檔案的條件。
  • 識別一或多個設定,如 JSON 中所定義,並傳回這些設定探索到的值清單。 單一腳本可以指派給每個原則,並支援探索多個設定。

此外,適用於 Windows 的 PowerShell 腳本:

  • 必須壓縮以輸出單行的結果。
  • 例如: $hash = @{ Manufacturer = $WMI_ComputerSystem.Manufacturer; BiosVersion = $WMI_BIOS.SMBIOSBIOSVersion; TPMChipPresent = $TPM.TPMPresent} 腳本結尾必須包含下列這一行: return $hash | ConvertTo-Json -Compress

限制

您撰寫的文稿必須位於下列限制內,才能成功將合規性數據傳回 Intune:

  • 腳本不能大於 1 MB (MB) 。
  • 每個腳本產生的輸出不能大於 1 MB。
  • 文稿的運行時間必須有限:
    • 在 Linux 上,腳本的執行時間必須少於五分鐘。
    • 在 Windows 上,腳本的執行時間必須少於 10 分鐘。

適用於 Windows 的範例探索腳本

下列範例是您可以用於 Windows 裝置的範例 PowerShell 腳本:

$WMI_ComputerSystem = Get-WMIObject -class Win32_ComputerSystem
$WMI_BIOS = Get-WMIObject -class Win32_BIOS 
$TPM = Get-Tpm

$hash = @{ Manufacturer = $WMI_ComputerSystem.Manufacturer; BiosVersion = $WMI_BIOS.SMBIOSBIOSVersion; TPMChipPresent = $TPM.TPMPresent}
return $hash | ConvertTo-Json -Compress

以下是 Windows 範例文稿輸出的範例:

{"BiosVersion":"1.24","Manufacturer":"Microsoft Corporation","TPMChipPresent":true}

適用於Linux的範例探索腳本

注意事項

Linux 中的探索文本會在使用者的內容中執行,因此它們無法檢查需要提高許可權的系統層級設定。 這個範例是 state/hash 檔案的 /etc/sudoers

適用於Linux的探索腳本可以呼叫任何符合您需求的解釋器。 在部署腳本之前,請確定已在目標裝置上正確安裝和設定所選的解釋器。 若要指定文稿的解釋器,請在腳本頂端包含一行折線,指出解釋器二進位檔的路徑。

例如,如果您的腳本應該使用Bash殼層做為解釋器,請在腳本頂端新增下列這一行:

[ !/bin/bash ]

如果您想要針對腳本使用 Python,請指出解釋器的安裝位置。 例如,將下列內容新增至腳本頂端: [ !/usr/bin/python3 ][ !/usr/bin/env python ]

建議的最佳做法:若要讓腳本能夠處理中斷或取消訊號等案例,請實作正常終止機制。 當腳本正確地快取並處理這些訊號時,腳本可以正常執行清除工作並存在,確保資源正確釋放。 例如,您可以) 攔截 SIGINT (中斷訊號) 或 SIGTERM 等特定訊號 (終止訊號,並定義接收這些訊號時要執行的自定義動作。 這些動作可能包括關閉開啟的檔案、釋放取得的鎖定,或清除暫存資源。 正確處理訊號有助於維護腳本完整性,並改善整體用戶體驗。

如需詳細資訊,請參閱 Intune Linux 自定義合規性範例指南。

將探索腳本新增至 Intune

在生產環境中部署腳本之前,請先在隔離的環境中進行測試,以確保您使用的語法如預期般運作。

  1. 入 Microsoft Intune 系統管理中心,然後移至 [端點安全>性裝置合規性>腳本>][新增> (選擇您的平臺)

  2. [基本] 上,提供 [名稱]

  3. 在 [ 設定] 上,將您的腳本新增至 偵測腳本。 請仔細檢閱您的腳本。 Intune 不會驗證文本的語法或程式設計錯誤。

  4. 僅限 Windows - 在 [設定] 上,為 PowerShell 腳本設定下列行為:

    • 使用登入的認證執行此腳本 – 根據預設,腳本會在裝置的系統內容中執行。 將此值設定為 [是],讓它在登入使用者的內容中執行。 如果使用者未登入,腳本會預設為系統內容。
    • 強制執行腳本簽章檢查 – 如需詳細資訊,請 參閱 PowerShell 檔中的about_Signing。
    • 在 64 位 PowerShell 主機中執行腳本 – 根據預設,腳本會使用 32 位 PowerShell 主機執行。 將此值設定為 [是] ,強制腳本改為使用 64 位主機執行。
  5. 完成腳本建立程式。 腳本現在會顯示在 Microsoft Intune 系統管理中心的 [腳本] 窗格中,而且可在設定合規性政策時加以選取。

由於將這些腳本上傳至 Microsoft Intune 系統管理中心的工作流程不支援範圍標籤,因此您必須獲指派預設範圍標籤,才能建立、編輯或查看自定義合規性探索腳本。

後續步驟