グループ設定を構成するための Microsoft Entra コマンドレット

この記事では、Microsoft Entra の一部である Microsoft Entra ID で PowerShell コマンドレットを使い、グループを作成して更新する手順を説明します。 このコンテンツは、Microsoft 365 グループ (統合グループと呼ばれることもあります) にのみ適用されます。

重要

一部の設定では、Microsoft Entra ID P1 ライセンスが必要です。 詳細については、「テンプレート設定」の表を参照してください。

管理者以外のユーザーがセキュリティ グループを作成できないようにする方法の詳細については、Update-MgPolicyAuthorizationPolicy の説明に従って、AllowedToCreateSecurityGroups プロパティを False に設定します。

Microsoft 365 グループの設定は、Settings オブジェクトおよび SettingsTemplate オブジェクトを使用して構成されます。 最初は、ディレクトリには Settings オブジェクトが表示されません。これは、ディレクトリが既定の設定で構成されているためです。 既定の設定を変更するには、Settings テンプレートを使用して新しい Settings オブジェクトを作成する必要があります。 Settings テンプレートは、Microsoft によって定義されます。 複数の Settings テンプレートがサポートされています。 ディレクトリの Microsoft 365 グループ設定を構成するには、"Group.Unified" という名前のテンプレートを使用します。 1 つのグループの Microsoft 365 グループ設定を構成するには、"Group.Unified.Guest" という名前のテンプレートを使用します。 このテンプレートは、Microsoft 365 グループへのゲスト アクセスを管理するために使用されます。

これらのコマンドレットは、Microsoft Graph PowerShell モジュールに含まれています。 モジュールをコンピューターにダウンロードしてインストールする方法については、「Microsoft Graph PowerShell SDK をインストールする」を参照してください。

重要

Azure AD PowerShell は 2024 年 3 月 30 日に非推奨となる予定です。 詳細については、非推奨の最新情報を参照してください。 Microsoft Entra ID (旧称 Azure AD) を使用するには、Microsoft Graph PowerShell に移行することをお勧めします。 Microsoft Graph PowerShell を使うと、すべての Microsoft Graph API にアクセスできます。また、PowerShell 7 上で使用できます。 一般的な移行の質問に対する回答については、移行に関する FAQ を参照してください。

Note

Microsoft 365 にゲストの追加を制限する設定が設定されていても、管理者は引き続きゲスト ユーザーを Microsoft 365 グループに追加できます。 この設定では、管理者以外のユーザーの Microsoft 365 グループへのゲスト ユーザーの追加を制限します。

PowerShell コマンドレットのインストール

Microsoft Graph PowerShell SDK のインストールに関する記事の説明に従って、Microsoft Graph コマンドレットをインストールします。

  1. 管理者として Windows PowerShell アプリを開きます。

  2. Microsoft Graph コマンドレットをインストールします。

    Install-Module Microsoft.Graph -Scope AllUsers
    
  3. Microsoft Graph ベータ版のコマンドレットをインストールします。

    Install-Module Microsoft.Graph.Beta -Scope AllUsers
    

ディレクトリ レベルでの設定の作成

次の手順では、ディレクトリ内のすべての Microsoft 365 グループに適用される設定をディレクトリ レベルで作成します。

  1. DirectorySettings コマンドレットでは、使用する SettingsTemplate の ID を指定する必要があります。 この ID を把握していない場合、このコマンドレットでは、すべての設定テンプレートの一覧が返されます。

    Get-MgBetaDirectorySettingTemplate
    

    このコマンドレットを呼び出すと、使用可能なすべてのテンプレートが返されます。

    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 を追加するには、まず使用ガイドラインの URL 値を定義する SettingsTemplate オブジェクト、つまり、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 コマンドレットを使って値を更新します。

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

テンプレート設定

Group.Unified SettingsTemplate で定義される設定は次のとおりです。 特に明記されていない限り、これらの機能には Microsoft Entra ID P1 ライセンスが必要です。

設定 説明
  • EnableGroupCreation
  • 型: Boolean
  • 既定値はTrue
ディレクトリで管理者以外のユーザーによる Microsoft 365 グループの作成を許可するかどうかを示すフラグ。 この設定では、Microsoft Entra ID P1 ライセンスは必要ありません。
  • GroupCreationAllowedGroupId
  • 型: String
  • 既定値: ""
EnableGroupCreation == false の場合でも Microsoft 365 グループの作成がメンバーに許可されているセキュリティ グループの GUID。
  • UsageGuidelinesUrl
  • 型: String
  • 既定値: ""
グループ使用ガイドラインへのリンク。
  • ClassificationDescriptions
  • 型: String
  • 既定値: ""
分類に関する説明のコンマ区切りリスト。 ClassificationDescriptions の値は、次の形式でのみ有効です。
$setting["ClassificationDescriptions"] ="Classification:Description,Classification:Description"
ここで、分類は ClassificationList 内のエントリと一致します。
EnableMIPLabels == True の場合、この設定は当てはまりません。
プロパティ ClassificationDescriptions の文字制限は 300 です。コンマをエスケープすることはできません。
  • DefaultClassification
  • 型: String
  • 既定値: ""
何も指定されていない場合にグループの既定の分類として使用される分類。
EnableMIPLabels == True の場合、この設定は当てはまりません。
  • PrefixSuffixNamingRequirement
  • 型: String
  • 既定値: ""
Microsoft 365 グループ用に構成された名前付け規則を定義する、最大文字数 64 文字の文字列。 詳細については、Microsoft 365 グループの名前付けポリシーの適用に関するページを参照してください。
  • CustomBlockedWordsList
  • 型: String
  • 既定値: ""
ユーザーによるグループ名または別名での使用が許可されていないフレーズのコンマ区切りの文字列。 詳細については、Microsoft 365 グループの名前付けポリシーの適用に関するページを参照してください。
  • EnableMSStandardBlockedWords
  • 型: Boolean
  • 既定値は"False"
非推奨。 使用しないでください。
  • AllowGuestsToBeGroupOwner
  • 型: Boolean
  • 既定値はFalse
ゲスト ユーザーがグループの所有者になれるかどうかを示すブール値。
  • AllowGuestsToAccessGroups
  • 型: Boolean
  • 既定値はTrue
ゲスト ユーザーが Microsoft 365 グループのコンテンツにアクセスできるかどうかを示すブール値。 この設定では、Microsoft Entra ID P1 ライセンスは必要ありません。
  • GuestUsageGuidelinesUrl
  • 型: String
  • 既定値: ""
ゲストの使用ガイドラインへのリンクの URL。
  • AllowToAddGuests
  • 型: Boolean
  • 既定値はTrue
このディレクトリにゲストを追加することが許可されているかどうかを示すブール値。
EnableMIPLabelsTrue に設定されていて、グループに割り当てられている機密ラベルにゲスト ポリシーが関連付けられている場合は、この設定は上書きされ読み取り専用になります。
AllowToAddGuests 設定が組織レベルで False に設定されている場合、グループ レベルでの AllowToAddGuests 設定はすべて無視されます。 ゲスト アクセスを少数のグループに対してのみ有効にする場合は、AllowToAddGuests を組織レベルで True に設定した後、それを特定のグループに対して選択的に無効にする必要があります。
  • ClassificationList
  • 型: String
  • 既定値: ""
Microsoft 365 グループに適用できる有効な分類の値のコンマ区切りの一覧。
EnableMIPLabels == True の場合、この設定は当てはまりません。
  • EnableMIPLabels
  • 型: Boolean
  • 既定値は"False"
Microsoft Purview コンプライアンス ポータルで公開されている秘密度ラベルを Microsoft 365 グループに適用できるかどうかを示すフラグ。 詳細については、Microsoft 365 グループへの秘密度ラベルの割り当てに関するページを参照してください。
  • NewUnifiedGroupWritebackDefault
  • 型: Boolean
  • 既定値は "True"
管理者が要求ペイロードで groupWritebackConfiguration リソースの種類を設定せずに新しい Microsoft 365 グループを作成できるようにするフラグ。 この設定は、Microsoft Entra Connect でグループの書き戻しが構成されている場合に適用されます。 "NewUnifiedGroupWritebackDefault" は、グローバルな Microsoft 365 グループ設定です。 既定値は true です。 設定値を false に更新すると、新しく作成された Microsoft 365 グループの既定の書き戻し動作が変更され、既存の Microsoft 365 グループの isEnabled プロパティ値は変更されません。 グループ管理者は、既存の Microsoft 365 グループの書き戻し状態を変更するために、グループの isEnabled プロパティ値を明示的に更新する必要があります。

例:ディレクトリ レベルでグループのゲスト ポリシーを構成する

  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 コマンドレットを使って新しい設定オブジェクトを作成します。

    $Setting = New-MgBetaDirectorySetting -BodyParameter $params
    
  5. 以下を使用して値を読み取ることができます。

    $Setting.Values
    

ディレクトリ レベルでの設定の読み取り

取得する設定の名前がわかっている場合、以下のコマンドレットを使って、現在の設定値を取得することができます。 この例では、"UsageGuidelinesUrl" という名前の設定の値を取得しています。

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

次の手順では、ディレクトリ内のすべての Office グループに適用される設定をディレクトリ レベルで読み取ります。

  1. 既存のディレクトリ設定をすべて読み取ります。

    Get-MgBetaDirectorySetting -All
    

    このコマンドレットでは、すべてのディレクトリ設定の一覧が返されます。

    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. Settings ID GUID を使用して、特定のディレクトリの Settings オブジェクトのすべてのディレクトリ設定値を読み取ります。

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

    このコマンドレットでは、この特定のグループのこの Settings オブジェクトの名前と値が返されます。

    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. この設定を適用するグループの ID を取得します。

    $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. 設定を更新するグループの ID を取得します。

    $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
    

コマンドレット構文リファレンス

その他の Microsoft Graph PowerShell ドキュメントについては、Microsoft Entra コマンドレットのページを参照してください。

Microsoft Graph を使用してグループ設定を管理する

Microsoft Graph を使用してグループ設定を構成および管理するには、groupSetting リソースの種類とそれに関連するメソッドを参照してください。

追加の参考資料