用於設定群組設定的 Microsoft Entra Cmdlet
本文包含使用 PowerShell Cmdlet 在 Microsoft Entra ID 中建立和更新群組的指示,Microsoft Entra 的一部分。 此內容僅適用於Microsoft 365 個群組。
重要
某些設定需要Microsoft Entra ID P1 授權。 如需詳細資訊,請參閱 範本設定 數據表。
如需如何防止非系統管理員使用者建立安全組的詳細資訊,請將
Microsoft 365 群組的設定是透過 Settings 物件和 SettingsTemplate 物件來進行配置的。 一開始,您不會在目錄中看到任何 Settings 對象,因為您的目錄是使用預設設定來設定的。 若要變更預設設定,您必須使用設定範本建立新的設定物件。 Microsoft提供數個設定範本。 若要為您的目錄設定Microsoft 365 群組設定,請使用名為 「Group.Unified」 的範本。 若要在單一群組上設定 Microsoft 365 群組的設定,請使用名為「Group.Unified.Guest」的範本。此範本用於管理 Microsoft 365 群組的來賓存取權限。
這些 cmdlet 是 Microsoft Graph PowerShell 模組的一部分。 如需如何在電腦上安裝模組的指示,請參閱 安裝 Microsoft Graph PowerShell SDK。
請注意
即使啟用了限制以防止將來賓新增至 Microsoft 365 群組,系統管理員仍然可以新增來賓使用者。 限制僅適用於非系統管理員使用者。
安裝 PowerShell Cmdlet
安裝 Microsoft Graph 指令集,如 安裝 Microsoft Graph PowerShell SDK中所述。
以系統管理員身分開啟 Windows PowerShell 應用程式。
安裝 Microsoft Graph Cmdlet。
Install-Module Microsoft.Graph -Scope AllUsers
安裝 Microsoft Graph Beta Cmdlet。
Install-Module Microsoft.Graph.Beta -Scope AllUsers
在目錄層級建立設定
這些步驟會在目錄層級建立設定,這些設定會套用至目錄中所有Microsoft 365 個群組。
在 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 ...
若要新增使用指導方針 URL,首先您需要取得 SettingsTemplate 對象來定義使用方針 URL 值;也就是群組。 整合範本:
$TemplateId = (Get-MgBetaDirectorySettingTemplate | where { $_.DisplayName -eq "Group.Unified" }).Id $Template = Get-MgBetaDirectorySettingTemplate | where -Property Id -Value $TemplateId -EQ
建立物件,其中包含要用於目錄設定的值。 這些值會變更使用方針值,並啟用敏感度標籤。 視需要在範本中設定這些設定或任何其他設定:
$params = @{ templateId = "$TemplateId" values = @( @{ name = "UsageGuidelinesUrl" value = "https://guideline.example.com" } @{ name = "EnableMIPLabels" value = "True" } ) }
使用 New-MgBetaDirectorySetting建立目錄設定:
New-MgBetaDirectorySetting -BodyParameter $params
您可以使用下列命令來讀取值:
$Setting = Get-MgBetaDirectorySetting | where { $_.DisplayName -eq "Group.Unified"} $Setting.Values
更新目錄層級的設定
若要更新設定範本中的 UsageGuideLinesUrl 值,請從 Microsoft Entra ID 讀取目前的設定,否則我們最終可能會覆寫除 UsageGuideLinesUrl 外的其他現有設定。
從 Group.Unified SettingsTemplate 取得目前的設定:
$Setting = Get-MgBetaDirectorySetting | where { $_.DisplayName -eq "Group.Unified"}
檢查目前的設定:
$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
若要移除 UsageGuideLinesUrl 的值,請將 URL 編輯為空字串:
$params = @{ Values = @( @{ Name = "UsageGuidelinesUrl" Value = "" } ) }
使用 Update-MgBetaDirectorySetting Cmdlet 來更新值:
Update-MgBetaDirectorySetting -DirectorySettingId $Setting.Id -BodyParameter $params
範本設定
以下是 Group.Unified SettingsTemplate
中定義的設定。 除非另有指示,否則這些功能需要Microsoft Entra ID P1 授權。
設定 | 描述 |
---|---|
啟用群組建立 類型: Boolean 默認值: True |
此旗標指出非系統管理員使用者是否可以在目錄中建立Microsoft 365 個群組。 此設定不需要Microsoft Entra ID P1 授權。 |
GroupCreationAllowedGroupId 類型: String 默認值: "" |
允許成員即使在EnableGroupCreation == false 的情況下仍能建立Microsoft 365群組的安全群組 GUID。 |
UsageGuidelinesUrl 類型: String 默認值: "" |
群組使用方針的鏈接。 |
分類描述 類型: String 默認值: "" |
一個以逗號分隔的分類描述清單。
ClassificationDescriptions 的值僅在以下格式有效:$setting["ClassificationDescriptions"] ="Classification:Description,Classification:Description" 當 Classification 符合 ClassificationList 中的條目時。 EnableMIPLabels == True 時,不適用此設定。屬性 ClassificationDescriptions 的字元限制為 300,而且無法逸出逗號。 |
DefaultClassification 類型: String 默認值: "" |
如果未指定任何分類,則作為群組的預設分類。EnableMIPLabels == True 時,不適用此設定。 |
PrefixSuffixNamingRequirement 類型: String 默認值: "" |
長度上限為 64 個字元的字串,定義為Microsoft 365 個群組所設定的命名慣例。 如需詳細資訊,請參閱 Microsoft 365 群組強制執行命名原則。 |
自訂封鎖字詞清單 類型: String 默認值: "" |
用戶不允許在組名或別名中使用的以逗號分隔的片語字串。 如需更多資訊,請參閱 Microsoft 365 群組命名原則的強制執行。 |
EnableMSStandardBlockedWords 類型: Boolean 默認值: False |
不建議使用的。 請勿使用。 |
允許來賓成為群組擁有者 類型: Boolean 默認值: False |
布爾值,指出來賓使用者是否可以是群組的擁有者。 |
允許訪客訪問群組 類型: Boolean 默認值: True |
布爾值,指出來賓使用者是否可以存取Microsoft 365 群組內容。 此設定不需要Microsoft Entra ID P1 授權。 |
GuestUsageGuidelinesUrl 類型: String 默認值: "" |
來賓使用指南連結的 URL。 |
AllowToAddGuests 類型: Boolean 默認值: True |
布爾值,指出是否允許將來賓新增至此目錄。 如果 EnableMIPLabels 設定為 True,且來賓原則與指派給群組的敏感度標籤相關聯,則此設定可能會被覆寫而變成唯讀。如果 AllowToAddGuests 設定在組織層級被設為 False,則會忽略群組層級的任何 AllowToAddGuests 設定。 如果您想要只針對少數群組啟用來賓存取,您必須在組織層級將 AllowToAddGuests 設定為 true,然後選擇性地針對特定群組停用它。 |
分類列表 類型: String 默認值: "" |
可套用至 Microsoft 365 群組的有效分類值的逗號分隔清單。 當 EnableMIPLabels == True 時,不會套用此設定。 |
EnableMIPLabels 類型: Boolean 默認值: False |
旗標,指出是否可將Microsoft Purview 合規性入口網站中發佈的敏感度標籤套用至Microsoft 365 個群組。 如需詳細資訊,請參閱 為 Microsoft 365 群組指派敏感度標籤。 |
NewUnifiedGroupWritebackDefault 類型: Boolean 默認值: True |
旗標允許系統管理員在不需在請求內容中設定 groupWritebackConfiguration 資源類型的情況下,建立新的 Microsoft 365 群組。 此設定適用於在 entra Connect Microsoft 中設定群組回寫時。
NewUnifiedGroupWritebackDefault 是全域Microsoft 365 群組設定。 默認值為 true。 將設定值更新為 false 將更改現有的 Microsoft 365 群組的預設回寫行為,且不會改變已存在 Microsoft 365 群組的 isEnabled 屬性值。 群組管理員必須明確更新群組的 isEnabled 屬性值,以變更現有的 Microsoft 365 群組的回寫狀態。 |
範例:為目錄層級的組群設定訪客政策
取得所有設定範本:
Get-MgBetaDirectorySettingTemplate
若要在目錄層級設定群組的來賓原則,您需要 Group.Unified 範本。
$Template = Get-MgBetaDirectorySettingTemplate | where -Property Id -Value "62375ab9-6b52-47ed-826b-58e47e0e304b" -EQ
為指定的樣本設定 AllowToAddGuests 的值:
$params = @{ templateId = "62375ab9-6b52-47ed-826b-58e47e0e304b" values = @( @{ name = "AllowToAddGuests" value = "False" } ) }
接下來,使用 New-MgBetaDirectorySetting Cmdlet 建立新的設定物件:
$Setting = New-MgBetaDirectorySetting -BodyParameter $params
您可以使用下列方式讀取值:
$Setting.Values
讀取目錄層級的設定
如果您知道要擷取的設定名稱,您可以使用下列 Cmdlet 來擷取目前的設定值。 在這個範例中,我們正在擷取一個名為 UsageGuidelinesUrl
的設定值。
(Get-MgBetaDirectorySetting).Values | where -Property Name -Value UsageGuidelinesUrl -EQ
這些步驟會讀取目錄層級的設定,這些設定會套用至目錄中的所有 Office 群組。
讀取所有現有的目錄設定:
Get-MgBetaDirectorySetting -All
此 Cmdlet 會傳回所有目錄設定的清單:
Id DisplayName TemplateId Values -- ----------- ---------- ------ c391b57d-5783-4c53-9236-cefb5c6ef323 Group.Unified 62375ab9-6b52-47ed-826b-58e47e0e304b {class SettingValue {...
讀取特定群組的所有設定:
Get-MgBetaGroupSetting -GroupId "ab6a3887-776a-4db7-9da4-ea2b0d63c504"
使用[設定識別元 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"
建立特定群組的設定
取得設定範本。
Get-MgBetaDirectorySettingTemplate
在結果中,尋找名為 「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 ...
取得 Groups.Unified.Guest 範本的範本物件:
$Template1 = Get-MgBetaDirectorySettingTemplate | where -Property Id -Value "08d542b9-071f-4e16-94b0-74abb372e3d9" -EQ
取得您要套用此設定的群組識別碼:
$GroupId = (Get-MgGroup -Filter "DisplayName eq '<YourGroupName>'").Id
建立新的設定:
$params = @{ templateId = "08d542b9-071f-4e16-94b0-74abb372e3d9" values = @( @{ name = "AllowToAddGuests" value = "False" } ) }
建立群組設定:
New-MgBetaGroupSetting -GroupId $GroupId -BodyParameter $params
若要確認設定,請執行此命令:
Get-MgBetaGroupSetting -GroupId $GroupId | FL Values
更新特定群組的設定
取得您要更新其設定的群組識別碼:
$groupId = (Get-MgGroup -Filter "DisplayName eq '<YourGroupName>'").Id
擷取群組的設定:
$Setting = Get-MgBetaGroupSetting -GroupId $GroupId
視需要更新群組的設定:
$params = @{ values = @( @{ name = "AllowToAddGuests" value = "True" } ) }
然後,您可以設定此設定的新值:
Update-MgBetaGroupSetting -DirectorySettingId $Setting.Id -GroupId $GroupId -BodyParameter $params
您可以讀取設定的值,以確定它已正確更新:
Get-MgBetaGroupSetting -GroupId $GroupId | FL Values
Cmdlet 語法參考
您可以在 Microsoft Entra Cmdlets中找到更多 Microsoft Graph PowerShell 文件。
使用 Microsoft Graph 管理群組設定
若要使用 Microsoft Graph 設定和管理群組設定,請參閱 groupSetting
資源類型 及其相關聯的方法。