分享方式:


用於設定群組設定的 Microsoft Entra Cmdlet

本文包含在 Microsoft Entra ID (Microsoft Entra 的一部分) 中使用 PowerShell Cmdlet 以建立和更新群組的指示。 此內容僅適用 Microsoft 365 群組 (有時稱為整合群組)。

重要

某些設定需要 Microsoft Entra ID P1 授權。 如需詳細資訊,請參閱範本設定資料表。

如需有關如何防止非系統管理員的使用者建立安全性群組的詳細資訊,請依照 Update-MgPolicyAuthorizationPolicy (英文) 中所述的內容將 AllowedToCreateSecurityGroups 屬性設定為 False。

Microsoft 365 群組設定是使用 Settings 物件和 SettingsTemplate 物件所設定。 一開始,您在目錄中不會看到任何設定物件,因為已使用預設設定來設定您的目錄。 若要變更預設設定,您必須使用設定範本來建立新的設定物件。 設定範本是由 Microsoft 所定義。 有數個不同的設定範本。 若要設定目錄的 Microsoft 365 群組設定,您要使用名為 "Group.Unified" 的範本。 若要在單一群組上設定 Microsoft 365 群組設定,請使用名為 "Group.Unified.Guest" 的範本。 此範本是用來管理 Microsoft 365 群組的來賓存取權。

這些 Cmdlet 是 Microsoft Graph PowerShell 模組的一部分。 如需如何在電腦上下載並安裝此模組的指示,請參閱安裝 Microsoft Graph PowerShell SDK (英文)。

注意

自 2024 年 3 月 30 日起,Azure AD 和 MSOnline PowerShell 模組已被淘汰。 若要深入了解,請閱讀淘汰更新。 在此日期之後,對這些模組的支援僅限於對 Microsoft Graph PowerShell SDK 的移轉協助和安全性修正。 淘汰的模組將繼續運作至 2025 年 3 月 30 日。

我們建議移轉至 Microsoft Graph PowerShell 以與 Microsoft Entra ID (以前稱為 Azure AD) 互動。 如需了解常見的移轉問題,請參閱移轉常見問題注意:MSOnline 1.0.x 版可能會在 2024 年 6 月 30 日之後發生中斷。

注意

有了設定來限制將來賓新增至 Microsoft 365 群組之後,管理員仍會將來賓使用者新增至 Microsoft 365 群組。 該設定會限制非系統管理員的使用者,使其無法將來賓使用者新增至 Microsoft 365 群組。

安裝 PowerShell Cmdlets

依照安裝 Microsoft Graph PowerShell SDK (英文) 中所述的內容安裝 Microsoft Graph Cmdlet。

  1. 以系統管理理員身分開啟 Windows PowerShell 應用程式。

  2. 安裝 Microsoft Graph Cmdlet。

    Install-Module Microsoft.Graph -Scope AllUsers
    
  3. 安裝 Microsoft Graph Beta Cmdlet。

    Install-Module Microsoft.Graph.Beta -Scope AllUsers
    

建立目錄層級的設定

這些步驟會建立目錄層級的設定,其會套用至目錄中的所有 Microsoft 365 群組。

  1. 在 DirectorySettings Cmdlet 中,您必須指定需要使用的 SettingsTemplate 識別碼。 如果您不知道此識別碼,這個 Cmdlet 會傳回所有設定範本的清單:

    Get-MgBetaDirectorySettingTemplate
    

    這個 Cmdlet 呼叫會傳回所有可用的範本︰

    Id                                   DisplayName         Description
    --                                   -----------         -----------
    62375ab9-6b52-47ed-826b-58e47e0e304b Group.Unified       ...
    08d542b9-071f-4e16-94b0-74abb372e3d9 Group.Unified.Guest Settings for a specific Microsoft 365 group
    16933506-8a8d-4f0d-ad58-e1db05a5b929 Company.BuiltIn     Setting templates define the different settings that can be used for the associ...
    4bc7f740-180e-4586-adb6-38b2e9024e6b Application...
    898f1161-d651-43d1-805c-3b0b388a9fc2 Custom Policy       Settings ...
    5cf42378-d67d-4f36-ba46-e8b86229381d Password Rule       Settings ...
    
  2. 若要新增使用方針 URL,首先您需要取得 SettingsTemplate 物件,此物件會定義使用方針 URL 值;也就是 Group.Unified 範本:

    $TemplateId = (Get-MgBetaDirectorySettingTemplate | where { $_.DisplayName -eq "Group.Unified" }).Id
    $Template = Get-MgBetaDirectorySettingTemplate | where -Property Id -Value $TemplateId -EQ
    
  3. 建立一個物件,其中包含要用於目錄設定的值。 這些值會變更使用指導方針值並啟用敏感度標籤。 視需要在範本中設定這些或任何其他設定:

    $params = @{
       templateId = "$TemplateId"
       values = @(
          @{
             name = "UsageGuidelinesUrl"
             value = "https://guideline.example.com"
          }
          @{
             name = "EnableMIPLabels"
             value = "True"
          }
       )
    }
    
  4. 使用 New-MgBetaDirectorySetting (英文) 建立目錄設定:

    New-MgBetaDirectorySetting -BodyParameter $params
    
  5. 您可以使用下列命令來讀取值:

    $Setting = Get-MgBetaDirectorySetting | where { $_.DisplayName -eq "Group.Unified"}
    $Setting.Values
    

更新目錄層級的設定

若要更新設定範本中的 UsageGuideLinesUrl 值,請從 Microsoft Entra ID 讀取目前的設定,否則我們最後可能會覆寫 UsageGuideLinesUrl 以外的現有設定。

  1. 從 Group.Unified SettingsTemplate 取得目前的設定:

    $Setting = Get-MgBetaDirectorySetting | where { $_.DisplayName -eq "Group.Unified"}
    
  2. 檢查目前的設定:

    $Setting.Values
    

    此命令會傳回下列值:

    Name                            Value
    ----                            -----
    EnableMIPLabels                 True
    CustomBlockedWordsList
    EnableMSStandardBlockedWords    False
    ClassificationDescriptions
    DefaultClassification
    PrefixSuffixNamingRequirement
    AllowGuestsToBeGroupOwner       False
    AllowGuestsToAccessGroups       True
    GuestUsageGuidelinesUrl
    GroupCreationAllowedGroupId
    AllowToAddGuests                True
    UsageGuidelinesUrl              https://guideline.example.com
    ClassificationList
    EnableGroupCreation             True
    NewUnifiedGroupWritebackDefault True
    
  3. 若要移除 UsageGuideLinesUrl 的值,請將 URL 編輯為空字串:

    $params = @{
       Values = @(
          @{
             Name = "UsageGuidelinesUrl"
             Value = ""
          }
       )
    }
    
  4. 使用 Update-MgBetaDirectorySetting (英文) Cmdlet 來更新值:

    Update-MgBetaDirectorySetting -DirectorySettingId $Setting.Id -BodyParameter $params
    

範本設定

以下是 Group.Unified SettingsTemplate 中定義的設定。 除非另行指定,否則這些功能都需要 Microsoft Entra ID P1 授權。

設定 說明
  • EnableGroupCreation
  • 類型:布林值
  • 預設值:True
旗標,指出是否允許非管理使用者在目錄中建立 Microsoft 365 群組。 此設定不需要 Microsoft Entra ID P1 授權。
  • GroupCreationAllowedGroupId
  • 類型:字串
  • 預設值:""
即使 EnableGroupCreation == false,仍允許成員建立 Microsoft 365 群組的安全性群組的 GUID。
  • UsageGuidelinesUrl
  • 類型:字串
  • 預設值:""
群組使用方針的連結。
  • ClassificationDescriptions
  • 類型:字串
  • 預設值:""
分類說明的以逗號分隔清單。 ClassificationDescriptions 的值只能採用下列格式:
$setting["ClassificationDescriptions"] ="Classification:Description,Classification:Description"
其中的 Classification 符合 ClassificationList 中的項目。
當 EnableMIPLabels == True,此設定不適用。
屬性 ClassificationDescriptions 的字元限制為 300,而且無法將逗號逸出。
  • DefaultClassification
  • 類型:字串
  • 預設值:""
如果尚未指定,則是做為群組預設分類的分類。
當 EnableMIPLabels == True,此設定不適用。
  • PrefixSuffixNamingRequirement
  • 類型:字串
  • 預設值:""
長度上限為 64 個字元的字串,用以定義為 Microsoft 365 群組設定的命名慣例。 如需詳細資訊,請參閱對 Microsoft 365 群組強制執行命名原則
  • CustomBlockedWordsList
  • 類型:字串
  • 預設值:""
使用者在群組名稱或別名中不允許使用之片語的逗號分隔字串。 如需詳細資訊,請參閱對 Microsoft 365 群組強制執行命名原則
  • EnableMSStandardBlockedWords
  • 類型:布林值
  • 預設值:"False"
已取代。 請勿使用。
  • AllowGuestsToBeGroupOwner
  • 類型:布林值
  • 預設值:False
布林值,表示來賓使用者是否可以是群組的擁有者。
  • AllowGuestsToAccessGroups
  • 類型:布林值
  • 預設值:True
布林值,指出來賓使用者是否可存取 Microsoft 365 群組內容。 此設定不需要 Microsoft Entra ID P1 授權。
  • GuestUsageGuidelinesUrl
  • 類型:字串
  • 預設值:""
來賓使用指導方針的連結 URL。
  • AllowToAddGuests
  • 類型:布林值
  • 預設值:True
布林值表示是否允許將來賓新增至此目錄。
如果 EnableMIPLabels 設為 True,而且來賓原則與指派給群組的敏感度標籤相關聯,則可能會覆寫此設定,並將其變成唯讀。
如果在組織層級將 AllowToAddGuests 設定設為 False,則會忽略群組層級的任何 AllowToAddGuests 設定。 如果您只想要針對少數群組啟用來賓存取,則必須在組織層級將 AllowToAddGuests 設為 true,然後針對特定群組選擇性地停用。
  • ClassificationList
  • 類型:字串
  • 預設值:""
可套用至 Microsoft 365 群組、以逗號分隔的有效分類值清單。
當 EnableMIPLabels == True,此設定不適用。
  • EnableMIPLabels
  • 類型:布林值
  • 預設值:"False"
旗標,指出 Microsoft Purview 合規性入口網站發佈的敏感度標籤是否可套用至 Microsoft 365 群組。 如需詳細資訊,請參閱指派 Microsoft 365 群組的敏感度標籤
  • NewUnifiedGroupWritebackDefault
  • 類型:布林值
  • 預設值:"True"
旗標,可讓管理員在未於要求承載中設定 groupWritebackConfiguration 資源類型的情況下建立新的 Microsoft 365 群組。 此設定適用於在 Microsoft Entra Connect 中設定群組回寫時。 "NewUnifiedGroupWritebackDefault" 是全域 Microsoft 365 群組設定。 預設值為 True。 將設定值更新為 false 將會變更新建立 Microsoft 365 群組的預設回寫行為,而且不會變更現有 Microsoft 365 群組的 isEnabled 屬性值。 群組管理員需要明確地更新群組 isEnabled 屬性值,以變更現有 Microsoft 365 群組的回寫狀態。

範例:在目錄層級設定群組的來賓原則

  1. 取得所有設定範本:

    Get-MgBetaDirectorySettingTemplate
    
  2. 若要在目錄層級針對群組設定來賓原則,您需要 Group.Unified 範本。

    $Template = Get-MgBetaDirectorySettingTemplate | where -Property Id -Value "62375ab9-6b52-47ed-826b-58e47e0e304b" -EQ
    
  3. 為指定的範本設定 AllowToAddGuests 的值:

    $params = @{
       templateId = "62375ab9-6b52-47ed-826b-58e47e0e304b"
       values = @(
          @{
             name = "AllowToAddGuests"
             value = "False"
          }
       )
    }
    
  4. 接下來,使用 New-MgBetaDirectorySetting (英文) Cmdlet 建立新的設定物件:

    $Setting = New-MgBetaDirectorySetting -BodyParameter $params
    
  5. 您可以使用下列來讀取值:

    $Setting.Values
    

讀取目錄層級的設定

如果您知道需要擷取的設定名稱,可以使用以下 Cmdlet 來擷取目前的設定值。 在此範例中,我們會擷取名為 "UsageGuidelinesUrl" 的設定值。

(Get-MgBetaDirectorySetting).Values | where -Property Name -Value UsageGuidelinesUrl -EQ

這些步驟會讀取目錄層級的設定,其會套用至目錄中的所有 Office 群組。

  1. 讀取所有現有的目錄設定:

    Get-MgBetaDirectorySetting -All
    

    此 Cmdlet 會傳回所有目錄設定的清單:

    Id                                   DisplayName   TemplateId                           Values
    --                                   -----------   ----------                           ------
    c391b57d-5783-4c53-9236-cefb5c6ef323 Group.Unified 62375ab9-6b52-47ed-826b-58e47e0e304b {class SettingValue {...
    
  2. 讀取特定群組的所有設定:

    Get-MgBetaGroupSetting -GroupId "ab6a3887-776a-4db7-9da4-ea2b0d63c504"
    
  3. 使用設定識別碼 GUID,讀取特定目錄設定物件的所有目錄設定值:

    (Get-MgBetaDirectorySetting -DirectorySettingId "c391b57d-5783-4c53-9236-cefb5c6ef323").values
    

    此 Cmdlet 會傳回針對此特定群組的這個設定物件中的名稱和值:

    Name                          Value
    ----                          -----
    ClassificationDescriptions
    DefaultClassification
    PrefixSuffixNamingRequirement
    CustomBlockedWordsList        
    AllowGuestsToBeGroupOwner     False 
    AllowGuestsToAccessGroups     True
    GuestUsageGuidelinesUrl
    GroupCreationAllowedGroupId
    AllowToAddGuests              True
    UsageGuidelinesUrl            https://guideline.example.com
    ClassificationList
    EnableGroupCreation           True
    

移除目錄層級的設定

這個步驟會移除目錄層級的設定,其會套用至目錄中的所有 Office 群組。

Remove-MgBetaDirectorySetting –DirectorySettingId "c391b57d-5783-4c53-9236-cefb5c6ef323c"

建立特定群組的設定

  1. 取得設定範本。

    Get-MgBetaDirectorySettingTemplate
    
  2. 在結果中,搜尋名為 "Groups.Unified.Guest" 的設定範本:

    Id                                   DisplayName            Description
    --                                   -----------            -----------
    62375ab9-6b52-47ed-826b-58e47e0e304b Group.Unified          ...
    08d542b9-071f-4e16-94b0-74abb372e3d9 Group.Unified.Guest    Settings for a specific Microsoft 365 group
    4bc7f740-180e-4586-adb6-38b2e9024e6b Application            ...
    898f1161-d651-43d1-805c-3b0b388a9fc2 Custom Policy Settings ...
    5cf42378-d67d-4f36-ba46-e8b86229381d Password Rule Settings ...
    
  3. 擷取 Groups.Unified.Guest 範本的範本物件:

    $Template1 = Get-MgBetaDirectorySettingTemplate | where -Property Id -Value "08d542b9-071f-4e16-94b0-74abb372e3d9" -EQ
    
  4. 取得您要套用此設定的群組的識別碼:

    $GroupId = (Get-MgGroup -Filter "DisplayName eq '<YourGroupName>'").Id
    
  5. 建立新的設定:

    $params = @{
       templateId = "08d542b9-071f-4e16-94b0-74abb372e3d9"
       values = @(
          @{
             name = "AllowToAddGuests"
             value = "False"
          }
       )
    }
    
  6. 建立群組設定:

    New-MgBetaGroupSetting -GroupId $GroupId -BodyParameter $params
    
  7. 若要驗證設定,請執行此命令:

    Get-MgBetaGroupSetting -GroupId $GroupId | FL Values
    

更新特定群組的設定

  1. 取得您要更新其設定的群組的識別碼:

    $groupId = (Get-MgGroup -Filter "DisplayName eq '<YourGroupName>'").Id
    
  2. 擷取群組的設定:

    $Setting = Get-MgBetaGroupSetting -GroupId $GroupId
    
  3. 視需要更新群組的設定:

    $params = @{
       values = @(
          @{
             name = "AllowToAddGuests"
             value = "True"
          }
       )
    }
    
  4. 然後您可以為此設定設定新的值:

    Update-MgBetaGroupSetting -DirectorySettingId $Setting.Id -GroupId $GroupId -BodyParameter $params
    
  5. 您可以讀取設定的值,以確定已正確更新:

    Get-MgBetaGroupSetting -GroupId $GroupId  | FL Values
    

Cmdlet 語法參考

您可以在 Microsoft Entra Cmdlet (英文) 找到更多 Microsoft Graph PowerShell 文件。

使用 Microsoft Graph 來管理群組設定

若要使用 Microsoft Graph 來設定和管理群組設定,請參閱 groupSetting 資源類型 (英文) 及其相關聯的方法。

延伸閱讀